From: Alejandro R. SedeƱo Date: Wed, 10 Feb 2010 16:47:00 +0000 (-0500) Subject: Just scan the entire .git/svn tree for 'unhandled.log's X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=6b2f6ced66cb0f89db8cef4b35a865f420a86225;p=git-svn-keywords.git Just scan the entire .git/svn tree for 'unhandled.log's --- diff --git a/git-svn-keywords.py b/git-svn-keywords.py index dd2ec13..761b108 100755 --- a/git-svn-keywords.py +++ b/git-svn-keywords.py @@ -67,30 +67,38 @@ def get_svn_keyword_re(s): 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*)$") - +def _do_parse_unhandled(directory, lastrev=None): + base = os.path.join(directory) 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) + for d in os.listdir(base): + subent = os.path.join(base, d) + if (d == 'unhandled.log' and os.path.isfile(subent)): + with open(subent, '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*)$") + + 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) + elif (os.path.isdir(subent)): + _do_parse_unhandled(subent, lastrev=lastrev) + + if rev: + lastrev = max(int(rev), lastrev) CONFIG.set('core', 'lastrev', lastrev) CONFIG.set('core', 'version', VERSION) @@ -111,14 +119,7 @@ def parse_svn_unhandled(g): if CONFIG.has_option('core', 'lastrev'): lastrev = CONFIG.getint('core', 'lastrev') - for remote in ['svn', 'svn/refs/remotes']: - base = os.path.join(g.path,remote) - for d in os.listdir(base): - if os.path.isdir(os.path.join(base,d)): - unhandled = os.path.join(base,d,'unhandled.log') - if os.path.isfile(unhandled): - with open(unhandled, 'r') as f: - _do_parse_unhandled(f, lastrev=lastrev) + _do_parse_unhandled(os.path.join(g.path, 'svn'), lastrev=lastrev) with open(FILES_PATH, 'wb') as f: FILES.write(f)