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.
--- 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 ..