comparison mercurial/commands.py @ 701:80ed193efff7

On importing the result of 'hg export', parse while reading and drop headers. -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On importing the result of 'hg export', parse while reading and drop headers. manifest hash: 385cb4205bb6e4291a412d740400de44bd2e4014 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQFC1otNW7P1GVgWeRoRAiSpAJ4jGhjyEnI2aqCM6pgC8KWSWRkDugCgkVMK rd/YNziDK3TNRhI3yKNrLVw= =w6ht -----END PGP SIGNATURE-----
author Thomas Arendsen Hein <thomas@intevation.de>
date Thu, 14 Jul 2005 16:57:01 +0100
parents d01b93efecd6
children 574869103985
comparison
equal deleted inserted replaced
700:d01b93efecd6 701:80ed193efff7
612 612
613 for patch in patches: 613 for patch in patches:
614 ui.status("applying %s\n" % patch) 614 ui.status("applying %s\n" % patch)
615 pf = os.path.join(d, patch) 615 pf = os.path.join(d, patch)
616 616
617 text = "" 617 text = []
618 for l in file(pf): 618 user = None
619 if l.startswith("--- ") or l.startswith("diff -r"): 619 hgpatch = False
620 for line in file(pf):
621 line = line.rstrip()
622 if line.startswith("--- ") or line.startswith("diff -r"):
620 break 623 break
621 text += l 624 elif hgpatch:
622 625 # parse values when importing the result of an hg export
623 # parse values that exist when importing the result of an hg export 626 if line.startswith("# User "):
624 hgpatch = user = snippet = None 627 user = line[7:]
625 ui.debug('text:\n') 628 ui.debug('User: %s\n' % user)
626 for t in text.splitlines(): 629 elif not line.startswith("# ") and line:
627 ui.debug(t, '\n') 630 text.append(line)
628 if t == '# HG changeset patch' or hgpatch: 631 hgpatch = False
632 elif line == '# HG changeset patch':
629 hgpatch = True 633 hgpatch = True
630 if t.startswith("# User "): 634 else:
631 user = t[7:] 635 text.append(line)
632 ui.debug('User: %s\n' % user)
633 if not t.startswith("# ") and t.strip() and not snippet:
634 snippet = t
635 if snippet:
636 text = snippet + '\n' + text
637 ui.debug('text:\n%s\n' % text)
638 636
639 # make sure text isn't empty 637 # make sure text isn't empty
640 if not text: 638 if not text:
641 text = "imported patch %s\n" % patch 639 text = "imported patch %s\n" % patch
640 else:
641 text = "%s\n" % '\n'.join(text)
642 ui.debug('text:\n%s\n' % text)
642 643
643 f = os.popen("patch -p%d < %s" % (strip, pf)) 644 f = os.popen("patch -p%d < %s" % (strip, pf))
644 files = [] 645 files = []
645 for l in f.read().splitlines(): 646 for l in f.read().splitlines():
646 l.rstrip('\r\n'); 647 l.rstrip('\r\n');