comparison mercurial/patch.py @ 3900:2b3175acb653

Don't use node length for calculating revision number length. Done by moving repo.lookup of revisions from commands.export to patch.export
author Thomas Arendsen Hein <thomas@intevation.de>
date Fri, 15 Dec 2006 19:30:20 +0100
parents 504dee0abeac
children 0d27502a804c 4ced663bebf0
comparison
equal deleted inserted replaced
3899:504dee0abeac 3900:2b3175acb653
624 def export(repo, revs, template='hg-%h.patch', fp=None, switch_parent=False, 624 def export(repo, revs, template='hg-%h.patch', fp=None, switch_parent=False,
625 opts=None): 625 opts=None):
626 '''export changesets as hg patches.''' 626 '''export changesets as hg patches.'''
627 627
628 total = len(revs) 628 total = len(revs)
629 revwidth = max(map(len, revs)) 629 revwidth = max([len(str(rev)) for rev in revs])
630 630
631 def single(node, seqno, fp): 631 def single(node, seqno, fp):
632 parents = [p for p in repo.changelog.parents(node) if p != nullid] 632 parents = [p for p in repo.changelog.parents(node) if p != nullid]
633 if switch_parent: 633 if switch_parent:
634 parents.reverse() 634 parents.reverse()
653 653
654 diff(repo, prev, node, fp=fp, opts=opts) 654 diff(repo, prev, node, fp=fp, opts=opts)
655 if fp not in (sys.stdout, repo.ui): 655 if fp not in (sys.stdout, repo.ui):
656 fp.close() 656 fp.close()
657 657
658 for seqno, cset in enumerate(revs): 658 for seqno, rev in enumerate(revs):
659 single(cset, seqno+1, fp) 659 single(repo.lookup(rev), seqno+1, fp)
660 660
661 def diffstat(patchlines): 661 def diffstat(patchlines):
662 fd, name = tempfile.mkstemp(prefix="hg-patchbomb-", suffix=".txt") 662 fd, name = tempfile.mkstemp(prefix="hg-patchbomb-", suffix=".txt")
663 try: 663 try:
664 p = popen2.Popen3('diffstat -p1 -w79 2>/dev/null > ' + name) 664 p = popen2.Popen3('diffstat -p1 -w79 2>/dev/null > ' + name)