jsonchangeset: don't honor whitespace and format-changing diffopts
authorSiddharth Agarwal <sid0@fb.com>
Tue, 18 Nov 2014 22:13:05 -0800
changeset 23453 341e4798c24d
parent 23452 86c0d8c1484f
child 23454 317ccfbd1a84
jsonchangeset: don't honor whitespace and format-changing diffopts JSON is meant to be parsed by computers, and format changes can break them.
mercurial/cmdutil.py
tests/test-command-template.t
--- a/mercurial/cmdutil.py	Tue Nov 18 21:49:05 2014 -0800
+++ b/mercurial/cmdutil.py	Tue Nov 18 22:13:05 2014 -0800
@@ -1093,7 +1093,7 @@
         if matchfn:
             stat = self.diffopts.get('stat')
             diff = self.diffopts.get('patch')
-            diffopts = patch.diffopts(self.ui, self.diffopts)
+            diffopts = patch.difffeatureopts(self.ui, self.diffopts, git=True)
             node, prev = ctx.node(), ctx.p1().node()
             if stat:
                 self.ui.pushbuffer()
--- a/tests/test-command-template.t	Tue Nov 18 21:49:05 2014 -0800
+++ b/tests/test-command-template.t	Tue Nov 18 22:13:05 2014 -0800
@@ -525,6 +525,25 @@
    }
   ]
 
+honor --git but not format-breaking diffopts
+  $ hg --config diff.noprefix=True log --git -vpr . -Tjson
+  [
+   {
+    "rev": 8,
+    "node": "95c24699272ef57d062b8bccc32c878bf841784a",
+    "branch": "default",
+    "phase": "draft",
+    "user": "test",
+    "date": [1577872860, 0],
+    "desc": "third",
+    "bookmarks": [],
+    "tags": ["tip"],
+    "parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"],
+    "files": ["fourth", "second", "third"],
+    "diff": "diff --git a/second b/fourth\nrename from second\nrename to fourth\ndiff --git a/third b/third\nnew file mode 100644\n--- /dev/null\n+++ b/third\n@@ -0,0 +1,1 @@\n+third\n"
+   }
+  ]
+
   $ hg log -T json
   [
    {