On a slave machine there was a global git config option set to always use color ui.
git config --global color.ui always
This caused the generated changelog.xml file to contain escape characters. An example is shown below ..
When you view a build in Jenkins you will always see No Changes. This is happening on any version of Jenkins that I can remember seeing in the last couple of years ... only just figured out why.
The obvious workaround is to not use that git option, set it to auto (that's the default anyway) or set it to false.