From patchwork Tue Aug 30 20:16:20 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [7,of,8,v2] diffopts: notice a negated boolean flag in diffopts From: Augie Fackler X-Patchwork-Id: 16493 Message-Id: To: mercurial-devel@mercurial-scm.org Date: Tue, 30 Aug 2016 16:16:20 -0400 # HG changeset patch # User Augie Fackler # 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 ..