# HG changeset patch # User Martin von Zweigbergk # Date 1421989437 28800 # Node ID ae453d166d5148e9cc0936545c4f5260bf9f0973 # Parent 7f4e6b5fce03d7e35a187b9804033bfd88cc9f1a trydiff: replace 'binarydiff' variable by 'binary' variable It's not obvious, but every path in the 'if opts.git or losedatafn:' block will have checked whether the file is binary [1]. Let's assign the result of this check to a variable so we can simplify by checking 'binary and opts.git' in only one place instead of every place we currently assign to 'binarydiff'. [1] Except when deleting an empty file, but checking whether an empty string is binary is very cheap anyway. diff -r 7f4e6b5fce03 -r ae453d166d51 mercurial/patch.py --- a/mercurial/patch.py Fri Jan 16 15:09:21 2015 -0800 +++ b/mercurial/patch.py Thu Jan 22 21:03:57 2015 -0800 @@ -1776,7 +1776,7 @@ flag2 = None content1 = None content2 = None - binarydiff = False + binary = False copyop = None if f not in addedset: content1 = getfilectx(f, ctx1).data() @@ -1801,11 +1801,9 @@ else: if not opts.git and flag2: losedatafn(f) - if util.binary(content1) or util.binary(content2): - if opts.git: - binarydiff = True - else: - losedatafn(f) + binary = util.binary(content1) or util.binary(content2) + if not opts.git and binary: + losedatafn(f) if not opts.git and not content2: # regular diffs cannot represent new empty file losedatafn(f) @@ -1817,19 +1815,17 @@ continue else: flag1 = ctx1.flags(f) - if util.binary(content1): - binarydiff = True - elif not content1 or util.binary(content1): - # regular diffs cannot represent empty file deletion - losedatafn(f) + binary = util.binary(content1) + else: + binary = util.binary(content1) + if not content1 or binary: + # regular diffs cannot represent empty file deletion + losedatafn(f) else: flag1 = ctx1.flags(f) flag2 = ctx2.flags(f) binary = util.binary(content1) or util.binary(content2) - if opts.git: - if binary: - binarydiff = True - elif binary or flag2 != flag1: + if not opts.git and (binary or flag2 != flag1): losedatafn(f) path1 = posixpath.join(prefix, f1) @@ -1853,9 +1849,9 @@ elif revs and not repo.ui.quiet: header.append(diffline(path1, revs)) - if binarydiff and not opts.nobinary: + if binary and opts.git and not opts.nobinary: text = mdiff.b85diff(content1, content2) - if text and opts.git: + if text: header.append('index %s..%s' % (gitindex(content1), gitindex(content2))) else: