patch.diffopts: add support for noprefix
In an upcoming patch we'll enable support as an option to 'hg diff' as well.
The tests reflect the current state of the world -- as we add support we'll see
changes in the test output.
--- a/mercurial/help/config.txt Wed Nov 12 23:47:25 2014 -0800
+++ b/mercurial/help/config.txt Thu Nov 13 00:08:44 2014 -0800
@@ -547,6 +547,9 @@
``nodates``
Don't include dates in diff headers.
+``noprefix``
+ Omit 'a/' and 'b/' prefixes from filenames. Ignored in plain mode.
+
``showfunc``
Show which function each change is in.
--- a/mercurial/patch.py Wed Nov 12 23:47:25 2014 -0800
+++ b/mercurial/patch.py Thu Nov 13 00:08:44 2014 -0800
@@ -1573,6 +1573,7 @@
git=get('git'),
nodates=get('nodates'),
nobinary=get('nobinary'),
+ noprefix=get('noprefix', forceplain=False),
showfunc=get('show_function', 'showfunc'),
ignorews=get('ignore_all_space', 'ignorews'),
ignorewsamount=get('ignore_space_change', 'ignorewsamount'),
--- a/tests/test-diff-unified.t Wed Nov 12 23:47:25 2014 -0800
+++ b/tests/test-diff-unified.t Thu Nov 13 00:08:44 2014 -0800
@@ -89,6 +89,38 @@
abort: diff context lines count must be an integer, not 'foo'
[255]
+noprefix config
+
+ $ hg --config diff.noprefix=True diff --nodates
+ diff -r cf9f4ba66af2 a
+ --- a/a
+ +++ b/a
+ @@ -2,7 +2,7 @@
+ c
+ a
+ a
+ -b
+ +dd
+ a
+ a
+ c
+
+noprefix disabled in plain mode
+
+ $ HGPLAIN=1 hg --config diff.noprefix=True diff --nodates
+ diff -r cf9f4ba66af2 a
+ --- a/a
+ +++ b/a
+ @@ -2,7 +2,7 @@
+ c
+ a
+ a
+ -b
+ +dd
+ a
+ a
+ c
+
$ cd ..
@@ -171,6 +203,30 @@
-a
+b
+Git diff with noprefix
+
+ $ hg --config diff.noprefix=True diff --git --nodates
+ diff --git a/f1 b/f 1
+ rename from f1
+ rename to f 1
+ --- a/f1
+ +++ b/f 1
+ @@ -1,1 +1,1 @@
+ -a
+ +b
+
+noprefix config disabled in plain mode
+
+ $ HGPLAIN=1 hg --config diff.noprefix=True diff --git --nodates
+ diff --git a/f1 b/f 1
+ rename from f1
+ rename to f 1
+ --- a/f1
+ +++ b/f 1
+ @@ -1,1 +1,1 @@
+ -a
+ +b
+
Regular diff --nodates, file deletion
$ hg ci -m addspace