This is a bug in Eclipse that won't be fixed, unfortunately (it's from 2002).
What happens is this: Eclipse has an object to track files in the workspace. They have defined the usual operations like create and delete. So what happens is that you build your project.
This triggers the EMFText builder. It will delete the files which will trigger a "git rm" since Eclipse can't tell the difference between "code generator deletes files to create them again" and "user deleted a file for good."
Then the file is created again. Eclipse has no good way to fell whether you want to have this delete in your commit history or whether this was unintentional. So the file stays in the deleted state.
MercurialEclipse and all other version control plugins on Eclipse are affected as well.
Workarounds:
Create a script which simply adds all files that exist but are in state "delete".
Configure your code generator not to delete files during "Clean". Xtext can do this.