Mercurial > public > mercurial-scm > hg
comparison mercurial/patch.py @ 10151:c7355a0e1f39
patch: make git diffline generation more explicit
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Tue, 29 Dec 2009 16:00:38 +0100 |
parents | 270367ec4d30 |
children | e451e599fbcf |
comparison
equal
deleted
inserted
replaced
10150:926c436964b4 | 10151:c7355a0e1f39 |
---|---|
1291 return | 1291 return |
1292 | 1292 |
1293 date1 = util.datestr(ctx1.date()) | 1293 date1 = util.datestr(ctx1.date()) |
1294 man1 = ctx1.manifest() | 1294 man1 = ctx1.manifest() |
1295 | 1295 |
1296 if repo.ui.quiet: | 1296 revs = None |
1297 r = None | 1297 if not repo.ui.quiet and not opts.git: |
1298 else: | |
1299 hexfunc = repo.ui.debugflag and hex or short | 1298 hexfunc = repo.ui.debugflag and hex or short |
1300 r = [hexfunc(node) for node in [node1, node2] if node] | 1299 revs = [hexfunc(node) for node in [node1, node2] if node] |
1301 | 1300 |
1302 if opts.git: | 1301 if opts.git: |
1303 copy, diverge = copies.copies(repo, ctx1, ctx2, repo[nullid]) | 1302 copy, diverge = copies.copies(repo, ctx1, ctx2, repo[nullid]) |
1304 copy = copy.copy() | 1303 copy = copy.copy() |
1305 for k, v in copy.items(): | 1304 for k, v in copy.items(): |
1348 omode = gitmode[man1.flags(f)] | 1347 omode = gitmode[man1.flags(f)] |
1349 nmode = gitmode[ctx2.flags(f)] | 1348 nmode = gitmode[ctx2.flags(f)] |
1350 _addmodehdr(header, omode, nmode) | 1349 _addmodehdr(header, omode, nmode) |
1351 if util.binary(to) or util.binary(tn): | 1350 if util.binary(to) or util.binary(tn): |
1352 dodiff = 'binary' | 1351 dodiff = 'binary' |
1353 r = None | 1352 header.insert(0, mdiff.diffline(revs, a, b, opts)) |
1354 header.insert(0, mdiff.diffline(r, a, b, opts)) | |
1355 if dodiff: | 1353 if dodiff: |
1356 if dodiff == 'binary': | 1354 if dodiff == 'binary': |
1357 text = b85diff(to, tn) | 1355 text = b85diff(to, tn) |
1358 else: | 1356 else: |
1359 text = mdiff.unidiff(to, date1, | 1357 text = mdiff.unidiff(to, date1, |
1360 # ctx2 date may be dynamic | 1358 # ctx2 date may be dynamic |
1361 tn, util.datestr(ctx2.date()), | 1359 tn, util.datestr(ctx2.date()), |
1362 a, b, r, opts=opts) | 1360 a, b, revs, opts=opts) |
1363 if header and (text or len(header) > 1): | 1361 if header and (text or len(header) > 1): |
1364 yield ''.join(header) | 1362 yield ''.join(header) |
1365 if text: | 1363 if text: |
1366 yield text | 1364 yield text |
1367 | 1365 |