diff -r 36dcd3db70ab -r cd9e5e57064d mercurial/context.py --- a/mercurial/context.py Sun Nov 30 20:06:53 2014 +0100 +++ b/mercurial/context.py Wed Nov 26 15:37:01 2014 -0800 @@ -1035,7 +1035,13 @@ @propertycache def _manifest(self): - """generate a manifest corresponding to the values in self._status""" + """generate a manifest corresponding to the values in self._status + + This reuse the file nodeid from parent, but we append an extra letter + when modified. Modified files get an extra 'm' while added files get + appened an extra 'a'. This is used by manifests merge to see that files + are different and by update logic to avoid deleting newly added files. + """ man1 = self._parents[0].manifest() man = man1.copy()