# HG changeset patch # User Stephen Lee # Date 2014-06-21 05:56:49 # Node ID 3fbef7ac26f05bca222e1c99e6469bdb2fd35528 # Parent 15baed3f24ee98a7aaecfaf9b8c93e3695c9a813 diff: add nobinary config to suppress git-style binary diffs diff --git a/mercurial/mdiff.py b/mercurial/mdiff.py --- a/mercurial/mdiff.py +++ b/mercurial/mdiff.py @@ -37,6 +37,7 @@ class diffopts(object): 'showfunc': False, 'git': False, 'nodates': False, + 'nobinary': False, 'ignorews': False, 'ignorewsamount': False, 'ignoreblanklines': False, diff --git a/mercurial/patch.py b/mercurial/patch.py --- a/mercurial/patch.py +++ b/mercurial/patch.py @@ -1561,6 +1561,7 @@ def diffopts(ui, opts=None, untrusted=Fa text=opts and opts.get('text'), git=get('git'), nodates=get('nodates'), + nobinary=get('nobinary'), showfunc=get('show_function', 'showfunc'), ignorews=get('ignore_all_space', 'ignorews'), ignorewsamount=get('ignore_space_change', 'ignorewsamount'), @@ -1815,7 +1816,7 @@ def trydiff(repo, revs, ctx1, ctx2, modi if dodiff: if opts.git or revs: header.insert(0, diffline(join(a), join(b), revs)) - if dodiff == 'binary': + if dodiff == 'binary' and not opts.nobinary: text = mdiff.b85diff(to, tn) if text: addindexmeta(header, [gitindex(to), gitindex(tn)]) diff --git a/tests/test-diff-binary-file.t b/tests/test-diff-binary-file.t --- a/tests/test-diff-binary-file.t +++ b/tests/test-diff-binary-file.t @@ -37,4 +37,8 @@ $ hg diff --git -r 0 -r 2 + $ hg diff --config diff.nobinary=True --git -r 0 -r 1 + diff --git a/binfile.bin b/binfile.bin + Binary file binfile.bin has changed + $ cd ..