mercurial/context.py
changeset 23711 1e6fb8db666e
parent 23710 745e3b485632
child 23712 bfce25d25c96
--- 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().