changeset 23080:c586cb50872b stable

context.status: remove incorrect swapping of added/removed in workingctx The comment in workingctx.status() says that "calling 'super' subtly reveresed the contexts", but that is simply not true, so we should not be swapping added and removed fields.
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 24 Oct 2014 15:52:20 -0500
parents c4ce50a3d634
children e62c330a044f
files mercurial/context.py tests/test-diff-reverse.t
diffstat 2 files changed, 24 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/context.py	Thu Oct 23 13:17:37 2014 -0700
+++ b/mercurial/context.py	Fri Oct 24 15:52:20 2014 -0500
@@ -1499,13 +1499,9 @@
                listclean=False, listunknown=False, listsubrepos=False):
         # yet to be determined: what to do if 'other' is a 'workingctx' or a
         # 'memctx'?
-        s = super(workingctx, self).status(other, match, listignored, listclean,
-                                           listunknown, listsubrepos)
-        # calling 'super' subtly reveresed the contexts, so we flip the results
-        # (s[1] is 'added' and s[2] is 'removed')
-        s = list(s)
-        s[1], s[2] = s[2], s[1]
-        return scmutil.status(*s)
+        return super(workingctx, self).status(other, match, listignored,
+                                              listclean, listunknown,
+                                              listsubrepos)
 
 class committablefilectx(basefilectx):
     """A committablefilectx provides common functionality for a file context
--- a/tests/test-diff-reverse.t	Thu Oct 23 13:17:37 2014 -0700
+++ b/tests/test-diff-reverse.t	Fri Oct 24 15:52:20 2014 -0500
@@ -42,3 +42,24 @@
   -g
   -h
 
+should show removed file 'a' as being added
+  $ hg revert a
+  $ hg rm a
+  $ hg diff --reverse --nodates a
+  diff -r 2855cdcfcbb7 a
+  --- /dev/null
+  +++ b/a
+  @@ -0,0 +1,3 @@
+  +d
+  +e
+  +f
+
+should show added file 'b' as being removed
+  $ echo b >> b
+  $ hg add b
+  $ hg diff --reverse --nodates b
+  diff -r 2855cdcfcbb7 b
+  --- a/b
+  +++ /dev/null
+  @@ -1,1 +0,0 @@
+  -b