[PATCH 3/4] git-p4import: resume on correct p4 changeset
From: Scott Lamb <hidden>
Date: 2016-06-15 22:43:13
Subsystem:
the rest · Maintainer:
Linus Torvalds
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 <redacted> --- 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