return svn_keywords_re[s]
# Parse the unhandled log.
+def _do_parse_unhandled(f, lastrev=None):
+ # Compile the regular expressions we'll be using here.
+ re_rev = re.compile("^r(\d+)$")
+ re_keywords = re.compile("^\s+[-+]file_prop: (\S+) svn:keywords ?(\S*)$")
+
+ rev = None
+ for line in f:
+ m = re_rev.match(line)
+ if m:
+ rev = m.group(1)
+ continue
+
+ if (lastrev >= int(rev)):
+ continue
+
+ m = re_keywords.match(line)
+ if m:
+ path = urllib.unquote(m.group(1))
+ keywords = set(urllib.unquote(m.group(2)).split(' '))
+ if not FILES.has_section(path):
+ FILES.add_section(path)
+ FILES.set(path, rev, keywords)
+
+ lastrev = max(int(rev), lastrev)
+ CONFIG.set('core', 'lastrev', lastrev)
+ CONFIG.set('core', 'version', VERSION)
+
def parse_svn_unhandled(g):
try:
os.mkdir(gsk(g))
if CONFIG.has_option('core', 'lastrev'):
lastrev = CONFIG.getint('core', 'lastrev')
- with open(g.path + '/svn/git-svn/unhandled.log', 'r') as f:
- # Compile the regular expressions we'll be using here.
- re_rev = re.compile("^r(\d+)$")
- re_keywords = re.compile("^\s+[-+]file_prop: (\S+) svn:keywords ?(\S*)$")
-
- rev = None
- for line in f:
- m = re_rev.match(line)
- if m:
- rev = m.group(1)
- continue
-
- if (lastrev >= int(rev)):
- continue
-
- m = re_keywords.match(line)
- if m:
- path = urllib.unquote(m.group(1))
- keywords = set(urllib.unquote(m.group(2)).split(' '))
- if not FILES.has_section(path):
- FILES.add_section(path)
- FILES.set(path, rev, keywords)
-
- lastrev = max(int(rev), lastrev)
- CONFIG.set('core', 'lastrev', lastrev)
- CONFIG.set('core', 'version', VERSION)
+ with open(g.path + '/svn/refs/remotes/git-svn/unhandled.log', 'r') as f:
+ _do_parse_unhandled(f, lastrev=lastrev)
with open(FILES_PATH, 'wb') as f:
FILES.write(f)