From: Martin v. Löwis Date: Sat, 14 Jun 2008 06:25:37 +0000 (+0000) Subject: Merged revisions 64265 via svnmerge from X-Git-Tag: v3.0b1~37 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6d291c14b056257dc421a8690fe8ee817df519ea;p=python Merged revisions 64265 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r64265 | martin.v.loewis | 2008-06-14 08:24:44 +0200 (Sa, 14 Jun 2008) | 2 lines Conservatively restrict support to format 8 repositories. ........ --- diff --git a/Tools/scripts/svneol.py b/Tools/scripts/svneol.py index 5864cdcfb4..9e57bb4c0f 100644 --- a/Tools/scripts/svneol.py +++ b/Tools/scripts/svneol.py @@ -33,48 +33,50 @@ and for a file with a binary mime-type property: import re import os -def propfile(root, fn): +def propfiles(root, fn): default = os.path.join(root, ".svn", "props", fn+".svn-work") try: format = int(open(os.path.join(root, ".svn", "format")).read().strip()) except IOError: - return default - # XXX I don't know what version uses what format; - # this condition is just anecdotal - if format >= 8: - return os.path.join(root, ".svn", "prop-base", fn+".svn-base") - return default + return [] + if format == 8: + # In version 8, committed props are stored in prop-base, + # local modifications in props + return [os.path.join(root, ".svn", "prop-base", fn+".svn-base"), + os.path.join(root, ".svn", "props", fn+".svn-work")] + raise ValueError, "Unknown repository format" def proplist(root, fn): "Return a list of property names for file fn in directory root" - path = propfile(root, fn) - try: - f = open(path) - except IOError: - # no properties file: not under version control - return [] result = [] - while 1: - # key-value pairs, of the form - # K - # NL - # V length - # NL - # END - line = f.readline() - if line.startswith("END"): - break - assert line.startswith("K ") - L = int(line.split()[1]) - key = f.read(L) - result.append(key) - f.readline() - line = f.readline() - assert line.startswith("V ") - L = int(line.split()[1]) - value = f.read(L) - f.readline() - f.close() + for path in propfiles(root, fn): + try: + f = open(path) + except IOError: + # no properties file: not under version control, + # or no properties set + continue + while 1: + # key-value pairs, of the form + # K + # NL + # V length + # NL + # END + line = f.readline() + if line.startswith("END"): + break + assert line.startswith("K ") + L = int(line.split()[1]) + key = f.read(L) + result.append(key) + f.readline() + line = f.readline() + assert line.startswith("V ") + L = int(line.split()[1]) + value = f.read(L) + f.readline() + f.close() return result possible_text_file = re.compile(r"\.([hc]|py|txt|sln|vcproj)$").search