Show More
@@ -1088,7 +1088,7 b' def perfunidiff(ui, repo, file_, rev=Non' | |||||
1088 | for left, right in textpairs: |
|
1088 | for left, right in textpairs: | |
1089 | # The date strings don't matter, so we pass empty strings. |
|
1089 | # The date strings don't matter, so we pass empty strings. | |
1090 | headerlines, hunks = mdiff.unidiff( |
|
1090 | headerlines, hunks = mdiff.unidiff( | |
1091 | left, '', right, '', 'left', 'right') |
|
1091 | left, '', right, '', 'left', 'right', binary=False) | |
1092 | # consume iterators in roughly the way patch.py does |
|
1092 | # consume iterators in roughly the way patch.py does | |
1093 | b'\n'.join(headerlines) |
|
1093 | b'\n'.join(headerlines) | |
1094 | b''.join(sum((list(hlines) for hrange, hlines in hunks), [])) |
|
1094 | b''.join(sum((list(hlines) for hrange, hlines in hunks), [])) |
@@ -236,7 +236,7 b' def allblocks(text1, text2, opts=None, l' | |||||
236 | yield s, type |
|
236 | yield s, type | |
237 | yield s1, '=' |
|
237 | yield s1, '=' | |
238 |
|
238 | |||
239 |
def unidiff(a, ad, b, bd, fn1, fn2, opts=defaultopts |
|
239 | def unidiff(a, ad, b, bd, fn1, fn2, binary, opts=defaultopts): | |
240 | """Return a unified diff as a (headers, hunks) tuple. |
|
240 | """Return a unified diff as a (headers, hunks) tuple. | |
241 |
|
241 | |||
242 | If the diff is not null, `headers` is a list with unified diff header |
|
242 | If the diff is not null, `headers` is a list with unified diff header | |
@@ -244,8 +244,7 b' def unidiff(a, ad, b, bd, fn1, fn2, opts' | |||||
244 | (hunkrange, hunklines) coming from _unidiff(). |
|
244 | (hunkrange, hunklines) coming from _unidiff(). | |
245 | Otherwise, `headers` and `hunks` are empty. |
|
245 | Otherwise, `headers` and `hunks` are empty. | |
246 |
|
246 | |||
247 | Setting `check_binary` to false will skip the binary check, i.e. when |
|
247 | Set binary=True if either a or b should be taken as a binary file. | |
248 | it has been done in advance. Files are expected to be text in this case. |
|
|||
249 | """ |
|
248 | """ | |
250 | def datetag(date, fn=None): |
|
249 | def datetag(date, fn=None): | |
251 | if not opts.git and not opts.nodates: |
|
250 | if not opts.git and not opts.nodates: | |
@@ -269,7 +268,7 b' def unidiff(a, ad, b, bd, fn1, fn2, opts' | |||||
269 | fn1 = util.pconvert(fn1) |
|
268 | fn1 = util.pconvert(fn1) | |
270 | fn2 = util.pconvert(fn2) |
|
269 | fn2 = util.pconvert(fn2) | |
271 |
|
270 | |||
272 | if not opts.text and check_binary and (util.binary(a) or util.binary(b)): |
|
271 | if binary: | |
273 | if a and b and len(a) == len(b) and a == b: |
|
272 | if a and b and len(a) == len(b) and a == b: | |
274 | return sentinel |
|
273 | return sentinel | |
275 | headerlines = [] |
|
274 | headerlines = [] |
@@ -2699,12 +2699,9 b' def trydiff(repo, revs, ctx1, ctx2, modi' | |||||
2699 | flag2 = ctx2.flags(f2) |
|
2699 | flag2 = ctx2.flags(f2) | |
2700 | # if binary is True, output "summary" or "base85", but not "text diff" |
|
2700 | # if binary is True, output "summary" or "base85", but not "text diff" | |
2701 | if opts.text: |
|
2701 | if opts.text: | |
2702 | check_binary = True |
|
|||
2703 | binary = False |
|
2702 | binary = False | |
2704 | else: |
|
2703 | else: | |
2705 |
|
|
2704 | binary = any(f.isbinary() for f in [fctx1, fctx2] if f is not None) | |
2706 | for f in [fctx1, fctx2] if f is not None) |
|
|||
2707 | binary = check_binary |
|
|||
2708 |
|
2705 | |||
2709 | if losedatafn and not opts.git: |
|
2706 | if losedatafn and not opts.git: | |
2710 | if (binary or |
|
2707 | if (binary or | |
@@ -2794,8 +2791,8 b' def trydiff(repo, revs, ctx1, ctx2, modi' | |||||
2794 |
|
2791 | |||
2795 | uheaders, hunks = mdiff.unidiff(content1, date1, |
|
2792 | uheaders, hunks = mdiff.unidiff(content1, date1, | |
2796 | content2, date2, |
|
2793 | content2, date2, | |
2797 |
path1, path2, |
|
2794 | path1, path2, | |
2798 |
|
|
2795 | binary=binary, opts=opts) | |
2799 | header.extend(uheaders) |
|
2796 | header.extend(uheaders) | |
2800 | yield fctx1, fctx2, header, hunks |
|
2797 | yield fctx1, fctx2, header, hunks | |
2801 |
|
2798 |
General Comments 0
You need to be logged in to leave comments.
Login now