summaryrefslogtreecommitdiff
path: root/Tools/scripts/svneol.py
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2008-06-14 06:25:37 +0000
committerMartin v. Löwis <martin@v.loewis.de>2008-06-14 06:25:37 +0000
commitaa9bf3e5e12b56f8ff497afaaad3146d673fa506 (patch)
tree55c997b5dfc4a9bc85d47b3f006c2102576c67fc /Tools/scripts/svneol.py
parent9686ff8e37f67a60b4acd879f1073ab4213f0633 (diff)
downloadcpython-aa9bf3e5e12b56f8ff497afaaad3146d673fa506.tar.gz
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. ........
Diffstat (limited to 'Tools/scripts/svneol.py')
-rw-r--r--Tools/scripts/svneol.py70
1 files changed, 36 insertions, 34 deletions
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 <length>
- # <keyname>NL
- # V length
- # <value>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 <length>
+ # <keyname>NL
+ # V length
+ # <value>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