1562 '''return diffopts with all features supported and parsed''' |
1562 '''return diffopts with all features supported and parsed''' |
1563 return difffeatureopts(ui, opts=opts, untrusted=untrusted, section=section) |
1563 return difffeatureopts(ui, opts=opts, untrusted=untrusted, section=section) |
1564 |
1564 |
1565 diffopts = diffallopts |
1565 diffopts = diffallopts |
1566 |
1566 |
1567 def difffeatureopts(ui, opts=None, untrusted=False, section='diff'): |
1567 def difffeatureopts(ui, opts=None, untrusted=False, section='diff', git=False): |
1568 '''return diffopts with only opted-in features parsed''' |
1568 '''return diffopts with only opted-in features parsed |
|
1569 |
|
1570 Features: |
|
1571 - git: git-style diffs |
|
1572 ''' |
1569 def get(key, name=None, getter=ui.configbool, forceplain=None): |
1573 def get(key, name=None, getter=ui.configbool, forceplain=None): |
1570 if opts: |
1574 if opts: |
1571 v = opts.get(key) |
1575 v = opts.get(key) |
1572 if v: |
1576 if v: |
1573 return v |
1577 return v |
1575 return forceplain |
1579 return forceplain |
1576 return getter(section, name or key, None, untrusted=untrusted) |
1580 return getter(section, name or key, None, untrusted=untrusted) |
1577 |
1581 |
1578 buildopts = { |
1582 buildopts = { |
1579 'text': opts and opts.get('text'), |
1583 'text': opts and opts.get('text'), |
1580 'git': get('git'), |
|
1581 'nodates': get('nodates'), |
1584 'nodates': get('nodates'), |
1582 'nobinary': get('nobinary'), |
1585 'nobinary': get('nobinary'), |
1583 'noprefix': get('noprefix', forceplain=False), |
1586 'noprefix': get('noprefix', forceplain=False), |
1584 'showfunc': get('show_function', 'showfunc'), |
1587 'showfunc': get('show_function', 'showfunc'), |
1585 'ignorews': get('ignore_all_space', 'ignorews'), |
1588 'ignorews': get('ignore_all_space', 'ignorews'), |
1586 'ignorewsamount': get('ignore_space_change', 'ignorewsamount'), |
1589 'ignorewsamount': get('ignore_space_change', 'ignorewsamount'), |
1587 'ignoreblanklines': get('ignore_blank_lines', 'ignoreblanklines'), |
1590 'ignoreblanklines': get('ignore_blank_lines', 'ignoreblanklines'), |
1588 'context': get('unified', getter=ui.config), |
1591 'context': get('unified', getter=ui.config), |
1589 } |
1592 } |
|
1593 |
|
1594 if git: |
|
1595 buildopts['git'] = get('git') |
1590 |
1596 |
1591 return mdiff.diffopts(**buildopts) |
1597 return mdiff.diffopts(**buildopts) |
1592 |
1598 |
1593 def diff(repo, node1=None, node2=None, match=None, changes=None, opts=None, |
1599 def diff(repo, node1=None, node2=None, match=None, changes=None, opts=None, |
1594 losedatafn=None, prefix=''): |
1600 losedatafn=None, prefix=''): |