Show More
@@ -234,13 +234,16 b' def allblocks(text1, text2, opts=None, l' | |||
|
234 | 234 | yield s, type |
|
235 | 235 | yield s1, '=' |
|
236 | 236 | |
|
237 | def unidiff(a, ad, b, bd, fn1, fn2, opts=defaultopts): | |
|
237 | def unidiff(a, ad, b, bd, fn1, fn2, opts=defaultopts, check_binary=True): | |
|
238 | 238 | """Return a unified diff as a (headers, hunks) tuple. |
|
239 | 239 | |
|
240 | 240 | If the diff is not null, `headers` is a list with unified diff header |
|
241 | 241 | lines "--- <original>" and "+++ <new>" and `hunks` is a generator yielding |
|
242 | 242 | (hunkrange, hunklines) coming from _unidiff(). |
|
243 | 243 | Otherwise, `headers` and `hunks` are empty. |
|
244 | ||
|
245 | Setting `check_binary` to false will skip the binary check, i.e. when | |
|
246 | it has been done in advance. Files are expected to be text in this case. | |
|
244 | 247 | """ |
|
245 | 248 | def datetag(date, fn=None): |
|
246 | 249 | if not opts.git and not opts.nodates: |
@@ -270,7 +273,7 b' def unidiff(a, ad, b, bd, fn1, fn2, opts' | |||
|
270 | 273 | text += "\n\ No newline at end of file\n" |
|
271 | 274 | yield text |
|
272 | 275 | |
|
273 | if not opts.text and (util.binary(a) or util.binary(b)): | |
|
276 | if not opts.text and check_binary and (util.binary(a) or util.binary(b)): | |
|
274 | 277 | if a and b and len(a) == len(b) and a == b: |
|
275 | 278 | return sentinel |
|
276 | 279 | headerlines = [] |
@@ -2698,8 +2698,13 b' def trydiff(repo, revs, ctx1, ctx2, modi' | |||
|
2698 | 2698 | if opts.git or losedatafn: |
|
2699 | 2699 | flag2 = ctx2.flags(f2) |
|
2700 | 2700 | # if binary is True, output "summary" or "base85", but not "text diff" |
|
2701 | binary = not opts.text and any(f.isbinary() | |
|
2702 | for f in [fctx1, fctx2] if f is not None) | |
|
2701 | if opts.text: | |
|
2702 | check_binary = True | |
|
2703 | binary = False | |
|
2704 | else: | |
|
2705 | check_binary = any(f.isbinary() | |
|
2706 | for f in [fctx1, fctx2] if f is not None) | |
|
2707 | binary = check_binary | |
|
2703 | 2708 | |
|
2704 | 2709 | if losedatafn and not opts.git: |
|
2705 | 2710 | if (binary or |
@@ -2789,7 +2794,8 b' def trydiff(repo, revs, ctx1, ctx2, modi' | |||
|
2789 | 2794 | |
|
2790 | 2795 | uheaders, hunks = mdiff.unidiff(content1, date1, |
|
2791 | 2796 | content2, date2, |
|
2792 |
path1, path2, opts=opts |
|
|
2797 | path1, path2, opts=opts, | |
|
2798 | check_binary=check_binary) | |
|
2793 | 2799 | header.extend(uheaders) |
|
2794 | 2800 | yield fctx1, fctx2, header, hunks |
|
2795 | 2801 |
General Comments 0
You need to be logged in to leave comments.
Login now