[PATCH 3/4] git-p4import: resume on correct p4 changeset
- From
- Scott Lamb <slamb@slamb.org>
- Date
- Jun 3, 2007, 03:58 UTC
- Message-ID
- <11808431364066-git-send-email-slamb@slamb.org>
- In-Reply-To
- <11808431291938-git-send-email-slamb@slamb.org>
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@slamb.org> --- 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