--- a/mercurial/context.py Wed Dec 31 17:55:43 2014 +0900
+++ b/mercurial/context.py Wed Dec 31 17:55:43 2014 +0900
@@ -1634,6 +1634,18 @@
super(workingctx, self).__init__(repo, text, user, date, extra,
changes)
+ def _buildstatus(self, other, s, match,
+ listignored, listclean, listunknown):
+ """Prevent ``workingctx._buildstatus`` from changing ``self._status``
+ """
+ s = self._dirstatestatus(match, listignored, listclean, listunknown)
+ if other != self._repo['.']:
+ # workingctx._buildstatus doesn't change self._status in this case
+ superself = super(workingcommitctx, self)
+ s = superself._buildstatus(other, s, match,
+ listignored, listclean, listunknown)
+ return s
+
class memctx(committablectx):
"""Use memctx to perform in-memory commits via localrepo.commitctx().