[PATCH 7 of 8 v2] diffopts: notice a negated boolean flag in diffopts
Augie Fackler
raf at durin42.com
Tue Aug 30 20:16:20 UTC 2016
# HG changeset patch
# User Augie Fackler <augie at google.com>
# Date 1472586907 14400
# Tue Aug 30 15:55:07 2016 -0400
# Node ID fd68fb86c29873eb32c4a2bd28f7ac0abe3dc172
# Parent 6127fee6ac8208a62f718d53aca6cb814f43b742
diffopts: notice a negated boolean flag in diffopts
This means that if you have git-diffs enabled by default (pretty
common) and you hit the rare (but real) case where a git-diff breaks
patch(1) or some other tool, you can easily disable it by just
specifying --git=0 on the command line.
diff --git a/mercurial/patch.py b/mercurial/patch.py
--- a/mercurial/patch.py
+++ b/mercurial/patch.py
@@ -2142,7 +2142,7 @@ def difffeatureopts(ui, opts=None, untru
def get(key, name=None, getter=ui.configbool, forceplain=None):
if opts:
v = opts.get(key)
- if v:
+ if v or v is False:
return v
if forceplain is not None and ui.plain():
return forceplain
diff --git a/tests/test-diff-unified.t b/tests/test-diff-unified.t
--- a/tests/test-diff-unified.t
+++ b/tests/test-diff-unified.t
@@ -333,4 +333,20 @@ showfunc diff
+ return a + b + c + e;
}
+If [diff] git is set to true, but the user says --no-git, we should
+*not* get git diffs
+ $ hg diff --nodates --config diff.git=1 --no-git
+ diff -r f2c7c817fa55 f1
+ --- a/f1
+ +++ b/f1
+ @@ -2,6 +2,6 @@
+ int a = 0;
+ int b = 1;
+ int c = 2;
+ - int d = 3;
+ - return a + b + c + d;
+ + int e = 3;
+ + return a + b + c + e;
+ }
+
$ cd ..
More information about the Mercurial-devel
mailing list