Mercurial > public > mercurial-scm > hg-stable
diff mercurial/mdiff.py @ 1015:22571b8d35d3
Add automatic binary file detection to diff and export
Based on a patch by Fuming Wang
- add util.binary which decides whether a file is binary if it has any NUL
characters in the first 1K.
- teach mdiff.unidiff to print "binary file <x> has changed" for binary files
- add text flag to cause unidiff and dodiff to treat all files as text
- add -a and --text flags (like diff(1)) to hg diff and export
- update docs
author | mpm@selenic.com |
---|---|
date | Tue, 23 Aug 2005 19:58:46 -0700 |
parents | df8a5a0098d4 |
children | a0fcfbbf52bb |
line wrap: on
line diff
--- a/mercurial/mdiff.py Tue Aug 23 18:58:26 2005 -0700 +++ b/mercurial/mdiff.py Tue Aug 23 19:58:46 2005 -0700 @@ -7,12 +7,15 @@ import difflib, struct, bdiff from mpatch import * +from util import * -def unidiff(a, ad, b, bd, fn, r=None): +def unidiff(a, ad, b, bd, fn, r=None, text=False): if not a and not b: return "" - if a == None: + if not text and (binary(a) or binary(b)): + l = ['Binary file %s has changed\n' % fn] + elif a == None: b = b.splitlines(1) l1 = "--- %s\t%s\n" % ("/dev/null", ad) l2 = "+++ %s\t%s\n" % ("b/" + fn, bd)