equal
deleted
inserted
replaced
22 yield d |
22 yield d |
23 except EOFError: |
23 except EOFError: |
24 pass |
24 pass |
25 |
25 |
26 class p4_source(converter_source): |
26 class p4_source(converter_source): |
27 def __init__(self, ui, path, rev=None): |
27 def __init__(self, ui, path, revs=None): |
28 super(p4_source, self).__init__(ui, path, rev=rev) |
28 super(p4_source, self).__init__(ui, path, revs=revs) |
29 |
29 |
30 if "/" in path and not path.startswith('//'): |
30 if "/" in path and not path.startswith('//'): |
31 raise NoRepo(_('%s does not look like a P4 repository') % path) |
31 raise NoRepo(_('%s does not look like a P4 repository') % path) |
32 |
32 |
33 checktool('p4', abort=False) |
33 checktool('p4', abort=False) |
47 self.re_keywords = re.compile( |
47 self.re_keywords = re.compile( |
48 r"\$(Id|Header|Date|DateTime|Change|File|Revision|Author)" |
48 r"\$(Id|Header|Date|DateTime|Change|File|Revision|Author)" |
49 r":[^$\n]*\$") |
49 r":[^$\n]*\$") |
50 self.re_keywords_old = re.compile("\$(Id|Header):[^$\n]*\$") |
50 self.re_keywords_old = re.compile("\$(Id|Header):[^$\n]*\$") |
51 |
51 |
|
52 if revs and len(revs) > 1: |
|
53 raise util.Abort(_("p4 source does not support specifying " |
|
54 "multiple revisions")) |
52 self._parse(ui, path) |
55 self._parse(ui, path) |
53 |
56 |
54 def _parse_view(self, path): |
57 def _parse_view(self, path): |
55 "Read changes affecting the path" |
58 "Read changes affecting the path" |
56 cmd = 'p4 -G changes -s submitted %s' % util.shellquote(path) |
59 cmd = 'p4 -G changes -s submitted %s' % util.shellquote(path) |
97 |
100 |
98 # handle revision limiting |
101 # handle revision limiting |
99 startrev = self.ui.config('convert', 'p4.startrev', default=0) |
102 startrev = self.ui.config('convert', 'p4.startrev', default=0) |
100 self.p4changes = [x for x in self.p4changes |
103 self.p4changes = [x for x in self.p4changes |
101 if ((not startrev or int(x) >= int(startrev)) and |
104 if ((not startrev or int(x) >= int(startrev)) and |
102 (not self.rev or int(x) <= int(self.rev)))] |
105 (not self.revs or int(x) <= int(self.revs[0])))] |
103 |
106 |
104 # now read the full changelists to get the list of file revisions |
107 # now read the full changelists to get the list of file revisions |
105 ui.status(_('collecting p4 changelists\n')) |
108 ui.status(_('collecting p4 changelists\n')) |
106 lastid = None |
109 lastid = None |
107 for change in self.p4changes: |
110 for change in self.p4changes: |