comparison mercurial/patch.py @ 15528:a84698badf0b

annotate: support diff whitespace filtering flags (issue3030) splitblock() was added to handle blocks returned by bdiff.blocks() which differ only by blank lines but are not made only of blank lines. I do not know exactly how it could happen but mdiff.blocks() threshold behaviour makes me think it can if those blocks are made of very popular lines mixed with popular blank lines. If it is proven to be wrong, the function can be dropped. The first implementation made annotate share diff configuration entries. But it looks like users will user -w/b for annotate but not for diff, on both the command line and hgweb. Since the latter cannot use command line entries, we introduce a new [annotate] section duplicating the diff whitespace options.
author Patrick Mezard <pmezard@gmail.com>
date Fri, 18 Nov 2011 12:04:31 +0100
parents 5414b56cfad6
children 97fc5eec3f43
comparison
equal deleted inserted replaced
15527:9926aab3d0b5 15528:a84698badf0b
1525 return ''.join(ret) 1525 return ''.join(ret)
1526 1526
1527 class GitDiffRequired(Exception): 1527 class GitDiffRequired(Exception):
1528 pass 1528 pass
1529 1529
1530 def diffopts(ui, opts=None, untrusted=False): 1530 def diffopts(ui, opts=None, untrusted=False, section='diff'):
1531 def get(key, name=None, getter=ui.configbool): 1531 def get(key, name=None, getter=ui.configbool):
1532 return ((opts and opts.get(key)) or 1532 return ((opts and opts.get(key)) or
1533 getter('diff', name or key, None, untrusted=untrusted)) 1533 getter(section, name or key, None, untrusted=untrusted))
1534 return mdiff.diffopts( 1534 return mdiff.diffopts(
1535 text=opts and opts.get('text'), 1535 text=opts and opts.get('text'),
1536 git=get('git'), 1536 git=get('git'),
1537 nodates=get('nodates'), 1537 nodates=get('nodates'),
1538 showfunc=get('show_function', 'showfunc'), 1538 showfunc=get('show_function', 'showfunc'),