mercurial/patch.py
changeset 3902 0d27502a804c
parent 3891 6b4127c7d52a
parent 3900 2b3175acb653
child 3963 ba45041827a2
equal deleted inserted replaced
3898:316cd5b0c940 3902:0d27502a804c
   623 def export(repo, revs, template='hg-%h.patch', fp=None, switch_parent=False,
   623 def export(repo, revs, template='hg-%h.patch', fp=None, switch_parent=False,
   624            opts=None):
   624            opts=None):
   625     '''export changesets as hg patches.'''
   625     '''export changesets as hg patches.'''
   626 
   626 
   627     total = len(revs)
   627     total = len(revs)
   628     revwidth = max(map(len, revs))
   628     revwidth = max([len(str(rev)) for rev in revs])
   629 
   629 
   630     def single(node, seqno, fp):
   630     def single(node, seqno, fp):
   631         parents = [p for p in repo.changelog.parents(node) if p != nullid]
   631         parents = [p for p in repo.changelog.parents(node) if p != nullid]
   632         if switch_parent:
   632         if switch_parent:
   633             parents.reverse()
   633             parents.reverse()
   652 
   652 
   653         diff(repo, prev, node, fp=fp, opts=opts)
   653         diff(repo, prev, node, fp=fp, opts=opts)
   654         if fp not in (sys.stdout, repo.ui):
   654         if fp not in (sys.stdout, repo.ui):
   655             fp.close()
   655             fp.close()
   656 
   656 
   657     for seqno, cset in enumerate(revs):
   657     for seqno, rev in enumerate(revs):
   658         single(cset, seqno, fp)
   658         single(repo.lookup(rev), seqno+1, fp)
   659 
   659 
   660 def diffstat(patchlines):
   660 def diffstat(patchlines):
   661     fd, name = tempfile.mkstemp(prefix="hg-patchbomb-", suffix=".txt")
   661     fd, name = tempfile.mkstemp(prefix="hg-patchbomb-", suffix=".txt")
   662     try:
   662     try:
   663         p = popen2.Popen3('diffstat -p1 -w79 2>/dev/null > ' + name)
   663         p = popen2.Popen3('diffstat -p1 -w79 2>/dev/null > ' + name)