changeset 23451:5fb1fc2e1281

hgk: don't honor whitespace and format-changing diffopts The diff-tree command is a plumbing command in Git, which means it is expected to have a stable output format. Ensure that our output is stable too.
author Siddharth Agarwal <sid0@fb.com>
date Tue, 18 Nov 2014 21:38:19 -0800
parents a074eeeabe32
children 86c0d8c1484f
files hgext/hgk.py tests/test-hgk.t
diffstat 2 files changed, 30 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/hgk.py	Tue Nov 18 17:36:24 2014 -0800
+++ b/hgext/hgk.py	Tue Nov 18 21:38:19 2014 -0800
@@ -95,8 +95,10 @@
             if opts['pretty']:
                 catcommit(ui, repo, node2, "")
             m = scmutil.match(repo[node1], files)
+            diffopts = patch.difffeatureopts(ui)
+            diffopts.git = True
             chunks = patch.diff(repo, node1, node2, match=m,
-                                opts=patch.diffopts(ui, {'git': True}))
+                                opts=diffopts)
             for chunk in chunks:
                 ui.write(chunk)
         else:
--- a/tests/test-hgk.t	Tue Nov 18 17:36:24 2014 -0800
+++ b/tests/test-hgk.t	Tue Nov 18 21:38:19 2014 -0800
@@ -16,5 +16,32 @@
   phase draft
   
   adda
+  $ echo b > b
+  $ hg ci -Am addb
+  adding b
+  $ hg log -T '{node}\n'
+  102a90ea7b4a3361e4082ed620918c261189a36a
+  07f4944404050f47db2e5c5071e0e84e7a27bba9
+
+  $ hg debug-diff-tree 07f494440405 102a90ea7b4a
+  :000000 100664 000000000000 1e88685f5dde N	b	b
+  $ hg debug-diff-tree 07f494440405 102a90ea7b4a --patch
+  diff --git a/b b/b
+  new file mode 100644
+  --- /dev/null
+  +++ b/b
+  @@ -0,0 +1,1 @@
+  +b
+
+Ensure that diff-tree output isn't affected by diffopts
+  $ hg --config diff.noprefix=True debug-diff-tree 07f494440405 102a90ea7b4a
+  :000000 100664 000000000000 1e88685f5dde N	b	b
+  $ hg --config diff.noprefix=True debug-diff-tree --patch 07f494440405 102a90ea7b4a
+  diff --git a/b b/b
+  new file mode 100644
+  --- /dev/null
+  +++ b/b
+  @@ -0,0 +1,1 @@
+  +b
 
   $ cd ..