mercurial/patch.py
changeset 3900 2b3175acb653
parent 3899 504dee0abeac
child 3902 0d27502a804c
child 4092 4ced663bebf0
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)