jhbuild r2127 - in trunk: . jhbuild/versioncontrol
- From: jsharpe svn gnome org
- To: svn-commits-list gnome org
- Subject: jhbuild r2127 - in trunk: . jhbuild/versioncontrol
- Date: Tue, 3 Jun 2008 15:36:34 +0000 (UTC)
Author: jsharpe
Date: Tue Jun 3 15:36:33 2008
New Revision: 2127
URL: http://svn.gnome.org/viewvc/jhbuild?rev=2127&view=rev
Log:
2008-06-03 James Sharpe <jsharpe svn gnome org>
* jhbuild/versioncontrol/git.py: Fixed _get_externals to handle
deleted svn:externals correctly.
Modified:
trunk/ChangeLog
trunk/jhbuild/versioncontrol/git.py
Modified: trunk/jhbuild/versioncontrol/git.py
==============================================================================
--- trunk/jhbuild/versioncontrol/git.py (original)
+++ trunk/jhbuild/versioncontrol/git.py Tue Jun 3 15:36:33 2008
@@ -243,23 +243,35 @@
cwd = self.get_checkoutdir()
unhandledFile = open(cwd + os.path.join(os.sep, '.git', 'svn', branch, 'unhandled.log'), 'r')
external_expr = re.compile(r"\+dir_prop: (.*?) svn:externals (.*)$")
+ rev_expr = re.compile(r"^r(\d+)$")
externals = {}
+ match = None
+ #the unhandled.log file has the revision numbers
+ #encoded as r#num we should only parse as far as self.revision
for line in unhandledFile:
- match = external_expr.search(line)
- if match:
- branch = match.group(1)
- external = urllib.unquote(match.group(2).replace("%0A", " ").strip("%20 ")).split()
- revision_expr = re.compile(r"-r(\d*)")
- i = 0
- while i < len(external):
- #see if we have a revision number
- match = revision_expr.search(external[i+1])
- if match:
- externals[external[i]] = (external[i+2], match.group(1))
- i = i+3
- else:
- externals[external[i]] = (external[i+1], None)
- i = i+2
+ m = external_expr.search(line)
+ if m:
+ match = m
+ rev_match = rev_expr.search(line)
+ if self.revision and rev_match:
+ if rev_match.group(1) > self.revision:
+ break
+
+ #only parse the final match
+ if match:
+ branch = match.group(1)
+ external = urllib.unquote(match.group(2).replace("%0A", " ").strip("%20 ")).split()
+ revision_expr = re.compile(r"-r(\d*)")
+ i = 0
+ while i < len(external):
+ #see if we have a revision number
+ match = revision_expr.search(external[i+1])
+ if match:
+ externals[external[i]] = (external[i+2], match.group(1))
+ i = i+3
+ else:
+ externals[external[i]] = (external[i+1], None)
+ i = i+2
for extdir in externals.iterkeys():
uri = externals[extdir][0]
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]