Patchwork [2,of,7] hgk: don't honor whitespace and format-changing diffopts

login
register
mail settings
Submitter Siddharth Agarwal
Date Dec. 2, 2014, 6:30 p.m.
Message ID <3f4ea445b52d04d825bc.1417545013@devbig136.prn2.facebook.com>
Download mbox | patch
Permalink /patch/6951/
State Accepted
Commit 27b3c75024eb00ac1210e6150c7a9b6aa4f449b6
Headers show

Comments

Siddharth Agarwal - Dec. 2, 2014, 6:30 p.m.
# HG changeset patch
# User Siddharth Agarwal <sid0@fb.com>
# Date 1416375499 28800
#      Tue Nov 18 21:38:19 2014 -0800
# Node ID 3f4ea445b52d04d825bcfec784c9f397f8c119aa
# Parent  9d4aa97bc4664d9e016894794c1893e59217922e
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.

Patch

diff --git a/hgext/hgk.py b/hgext/hgk.py
--- a/hgext/hgk.py
+++ b/hgext/hgk.py
@@ -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:
diff --git a/tests/test-hgk.t b/tests/test-hgk.t
--- a/tests/test-hgk.t
+++ b/tests/test-hgk.t
@@ -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 ..