This had been resuming on change 222 rather than 22283. top_change's removal of the last two characters must have predated the use of rstrip() in get_single(). A regexp should be less fragile, or at least more obvious when it breaks. Signed-off-by: Scott Lamb <slamb@xxxxxxxxx> --- git-p4import.py | 13 +++++++------ 1 files changed, 7 insertions(+), 6 deletions(-) diff --git a/git-p4import.py b/git-p4import.py index 54e5e9e..e7a52b3 100644 --- a/git-p4import.py +++ b/git-p4import.py @@ -237,15 +237,16 @@ class git_command: def make_tag(self, name, head): self.git(["tag", "-f", name, head]) + _tag_re = re.compile(r'tags/p4/(\d+)') def top_change(self, branch): try: a=self.get_single(["name-rev", "--tags", "refs/heads/%s" % branch]) - loc = a.find(' tags/') + 6 - if a[loc:loc+3] != "p4/": - raise - return int(a[loc+3:][:-2]) - except: - return 0 + except GitException, e: + return 0 # fresh repository + m = self._tag_re.search(a) + if m is None: + raise Exception('unable to parse: %r' % (a,)) + return int(m.group(1)) def update_index(self): files = self.git("ls-files -m -d -o -z".split(" ")) -- 1.5.2 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html