Mercurial > public > mercurial-scm > hg
comparison mercurial/patch.py @ 29948:e40343ce9c4c
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 --no-git on the command line.
I feel a little bad about the isinstance() check, but some values in
diffopts are not booleans and so we need to preserve false iff the
flag is a boolean flag: failing to do this means we end up with empty
string defaults for flags clobbering meaningful values from the [diff]
section in hgrc.
author | Augie Fackler <augie@google.com> |
---|---|
date | Tue, 30 Aug 2016 15:55:07 -0400 |
parents | 50f2966f86ca |
children | 173bdb502503 |
comparison
equal
deleted
inserted
replaced
29947:e1f0ec0b7d2d | 29948:e40343ce9c4c |
---|---|
2142 with most diff parsers | 2142 with most diff parsers |
2143 ''' | 2143 ''' |
2144 def get(key, name=None, getter=ui.configbool, forceplain=None): | 2144 def get(key, name=None, getter=ui.configbool, forceplain=None): |
2145 if opts: | 2145 if opts: |
2146 v = opts.get(key) | 2146 v = opts.get(key) |
2147 if v: | 2147 # diffopts flags are either None-default (which is passed |
2148 # through unchanged, so we can identify unset values), or | |
2149 # some other falsey default (eg --unified, which defaults | |
2150 # to an empty string). We only want to override the config | |
2151 # entries from hgrc with command line values if they | |
2152 # appear to have been set, which is any truthy value, | |
2153 # True, or False. | |
2154 if v or isinstance(v, bool): | |
2148 return v | 2155 return v |
2149 if forceplain is not None and ui.plain(): | 2156 if forceplain is not None and ui.plain(): |
2150 return forceplain | 2157 return forceplain |
2151 return getter(section, name or key, None, untrusted=untrusted) | 2158 return getter(section, name or key, None, untrusted=untrusted) |
2152 | 2159 |