equal
deleted
inserted
replaced
7 |
7 |
8 from demandload import demandload |
8 from demandload import demandload |
9 from i18n import gettext as _ |
9 from i18n import gettext as _ |
10 from node import * |
10 from node import * |
11 demandload(globals(), "cmdutil mdiff util") |
11 demandload(globals(), "cmdutil mdiff util") |
12 demandload(globals(), "cStringIO email.Parser errno os re shutil sys tempfile") |
12 demandload(globals(), '''cStringIO email.Parser errno os re shutil sys tempfile |
|
13 popen2''') |
13 |
14 |
14 # helper functions |
15 # helper functions |
15 |
16 |
16 def copyfile(src, dst, basedir=None): |
17 def copyfile(src, dst, basedir=None): |
17 if not basedir: |
18 if not basedir: |
548 if fp not in (sys.stdout, repo.ui): |
549 if fp not in (sys.stdout, repo.ui): |
549 fp.close() |
550 fp.close() |
550 |
551 |
551 for seqno, cset in enumerate(revs): |
552 for seqno, cset in enumerate(revs): |
552 single(cset, seqno, fp) |
553 single(cset, seqno, fp) |
|
554 |
|
555 def diffstat(patchlines): |
|
556 fd, name = tempfile.mkstemp(prefix="hg-patchbomb-", suffix=".txt") |
|
557 try: |
|
558 p = popen2.Popen3('diffstat -p1 -w79 2>/dev/null > ' + name) |
|
559 try: |
|
560 for line in patchlines: print >> p.tochild, line |
|
561 p.tochild.close() |
|
562 if p.wait(): return |
|
563 fp = os.fdopen(fd, 'r') |
|
564 stat = [] |
|
565 for line in fp: stat.append(line.lstrip()) |
|
566 last = stat.pop() |
|
567 stat.insert(0, last) |
|
568 stat = ''.join(stat) |
|
569 if stat.startswith('0 files'): raise ValueError |
|
570 return stat |
|
571 except: raise |
|
572 finally: |
|
573 try: os.unlink(name) |
|
574 except: pass |