comparison mercurial/patch.py @ 4112:c097b6f4f082

Merge with crew
author Matt Mackall <mpm@selenic.com>
date Thu, 22 Feb 2007 19:00:05 -0600
parents 226df1808f16
children ef4c1cd6f4e4
comparison
equal deleted inserted replaced
4111:06d65498f73b 4112:c097b6f4f082
410 i = 0 410 i = 0
411 while i < l: 411 while i < l:
412 yield text[i:i+csize] 412 yield text[i:i+csize]
413 i += csize 413 i += csize
414 414
415 if to == tn: 415 tohash = gitindex(to)
416 return 416 tnhash = gitindex(tn)
417 if tohash == tnhash:
418 return ""
419
417 # TODO: deltas 420 # TODO: deltas
418 l = len(tn) 421 ret = ['index %s..%s\nGIT binary patch\nliteral %s\n' %
419 fp.write('index %s..%s\nGIT binary patch\nliteral %s\n' % 422 (tohash, tnhash, len(tn))]
420 (gitindex(to), gitindex(tn), len(tn))) 423 for l in chunk(zlib.compress(tn)):
421 424 ret.append(fmtline(l))
422 tn = ''.join([fmtline(l) for l in chunk(zlib.compress(tn))]) 425 ret.append('\n')
423 fp.write(tn) 426 return ''.join(ret)
424 fp.write('\n')
425 427
426 def diff(repo, node1=None, node2=None, files=None, match=util.always, 428 def diff(repo, node1=None, node2=None, files=None, match=util.always,
427 fp=None, changes=None, opts=None): 429 fp=None, changes=None, opts=None):
428 '''print diff of changes to files between two nodes, or node and 430 '''print diff of changes to files between two nodes, or node and
429 working directory. 431 working directory.
576 addmodehdr(header, omode, nmode) 578 addmodehdr(header, omode, nmode)
577 if util.binary(to) or util.binary(tn): 579 if util.binary(to) or util.binary(tn):
578 dodiff = 'binary' 580 dodiff = 'binary'
579 r = None 581 r = None
580 header.insert(0, 'diff --git a/%s b/%s\n' % (a, b)) 582 header.insert(0, 'diff --git a/%s b/%s\n' % (a, b))
581 if dodiff == 'binary': 583 if dodiff:
582 fp.write(''.join(header)) 584 if dodiff == 'binary':
583 b85diff(fp, to, tn) 585 text = b85diff(fp, to, tn)
584 elif dodiff: 586 else:
585 text = mdiff.unidiff(to, date1, 587 text = mdiff.unidiff(to, date1,
586 # ctx2 date may be dynamic 588 # ctx2 date may be dynamic
587 tn, util.datestr(ctx2.date()), 589 tn, util.datestr(ctx2.date()),
588 f, r, opts=opts) 590 f, r, opts=opts)
589 if text or len(header) > 1: 591 if text or len(header) > 1:
590 fp.write(''.join(header)) 592 fp.write(''.join(header))
591 fp.write(text) 593 fp.write(text)
592 594
593 def export(repo, revs, template='hg-%h.patch', fp=None, switch_parent=False, 595 def export(repo, revs, template='hg-%h.patch', fp=None, switch_parent=False,