[PATCH STABLE] cmdutil.jsonchangeset: properly compute added and removed files

Gregory Szorc gregory.szorc at gmail.com
Tue Jan 6 06:19:24 UTC 2015


# HG changeset patch
# User Gregory Szorc <gregory.szorc at gmail.com>
# Date 1420525135 28800
#      Mon Jan 05 22:18:55 2015 -0800
# Branch stable
# Node ID d7b2b6b823ecdbdfc42f164a40dd07175343e581
# Parent  aafeaba22826f27cb976e8f0b5ae028e86fd607e
cmdutil.jsonchangeset: properly compute added and removed files

jsonchangeset._show() was computing the reverse status of the current
changeset. As a result, added files were showing up as removed and
removed files were showing up as adds.

There were existing tests for this code and they were flat out wrong.

diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -1071,9 +1071,9 @@ class jsonchangeset(changeset_printer):
             self.ui.write(',\n  "extra": {%s}' %
                           ", ".join('"%s": "%s"' % (j(k), j(v))
                                     for k, v in ctx.extra().items()))
 
-            files = ctx.status(ctx.p1())
+            files = self.repo.status(ctx.p1().node(), ctx.node())
             self.ui.write(',\n  "modified": [%s]' %
                           ", ".join('"%s"' % j(f) for f in files[0]))
             self.ui.write(',\n  "added": [%s]' %
                           ", ".join('"%s"' % j(f) for f in files[1]))
diff --git a/tests/test-command-template.t b/tests/test-command-template.t
--- a/tests/test-command-template.t
+++ b/tests/test-command-template.t
@@ -695,10 +695,10 @@ Test JSON style:
     "parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"],
     "manifest": "94961b75a2da554b4df6fb599e5bfc7d48de0c64",
     "extra": {"branch": "default"},
     "modified": [],
-    "added": ["second"],
-    "removed": ["fourth", "third"]
+    "added": ["fourth", "third"],
+    "removed": ["second"]
    },
    {
     "rev": 7,
     "node": "29114dbae42b9f078cf2714dbe3a86bba8ec7453",
@@ -712,10 +712,10 @@ Test JSON style:
     "parents": ["0000000000000000000000000000000000000000"],
     "manifest": "f2dbc354b94e5ec0b4f10680ee0cee816101d0bf",
     "extra": {"branch": "default"},
     "modified": [],
-    "added": [],
-    "removed": ["second"]
+    "added": ["second"],
+    "removed": []
    },
    {
     "rev": 6,
     "node": "d41e714fe50d9e4a5f11b4d595d543481b5f980b",
@@ -746,10 +746,10 @@ Test JSON style:
     "parents": ["10e46f2dcbf4823578cf180f33ecf0b957964c47"],
     "manifest": "4dc3def4f9b4c6e8de820f6ee74737f91e96a216",
     "extra": {"branch": "default"},
     "modified": [],
-    "added": [],
-    "removed": ["d"]
+    "added": ["d"],
+    "removed": []
    },
    {
     "rev": 4,
     "node": "bbe44766e73d5f11ed2177f1838de10c53ef3e74",
@@ -797,10 +797,10 @@ Test JSON style:
     "parents": ["b608e9d1a3f0273ccf70fb85fd6866b3482bf965"],
     "manifest": "6e0e82995c35d0d57a52aca8da4e56139e06b4b1",
     "extra": {"branch": "default"},
     "modified": [],
-    "added": [],
-    "removed": ["c"]
+    "added": ["c"],
+    "removed": []
    },
    {
     "rev": 1,
     "node": "b608e9d1a3f0273ccf70fb85fd6866b3482bf965",
@@ -814,10 +814,10 @@ Test JSON style:
     "parents": ["1e4e1b8f71e05681d422154f5421e385fec3454f"],
     "manifest": "4e8d705b1e53e3f9375e0e60dc7b525d8211fe55",
     "extra": {"branch": "default"},
     "modified": [],
-    "added": [],
-    "removed": ["b"]
+    "added": ["b"],
+    "removed": []
    },
    {
     "rev": 0,
     "node": "1e4e1b8f71e05681d422154f5421e385fec3454f",
@@ -831,10 +831,10 @@ Test JSON style:
     "parents": ["0000000000000000000000000000000000000000"],
     "manifest": "a0c8bcbbb45c63b90b70ad007bf38961f64f2af0",
     "extra": {"branch": "default"},
     "modified": [],
-    "added": [],
-    "removed": ["a"]
+    "added": ["a"],
+    "removed": []
    }
   ]
 
 Error if style not readable:


More information about the Mercurial-devel mailing list