Index: versioninfo.py =================================================================== --- versioninfo.py (revision 35047) +++ versioninfo.py (working copy) @@ -13,15 +13,44 @@ def svn_version(): _version = version() - try: - svn_entries = open( - os.path.join(get_src_dir(), '.svn', 'entries')).read() - revision = re.search(']*name=""[^>]*revision="([^"]+)"', - svn_entries).group(1) - result = _version + '-' + revision - except IOError: - result = _version + revision = 0 + urlre = re.compile('url="([^"]+)"') + revre = re.compile('committed-rev="(\d+)"') + + for base, dirs, files in os.walk(get_src_dir()): + if '.svn' not in dirs: + dirs[:] = [] + continue # no sense walking uncontrolled subdirs + dirs.remove('.svn') + f = open(os.path.join(base, '.svn', 'entries')) + data = f.read() + f.close() + + if data.startswith('8'): + data = map(str.splitlines,data.split('\n\x0c\n')) + del data[0][0] # get rid of the '8' + dirurl = data[0][3] + localrev = max([int(d[9]) for d in data if len(d)>9 and d[9]]) + elif data.startswith('