]> granicus.if.org Git - python/commitdiff
Merged revisions 64265 via svnmerge from
authorMartin v. Löwis <martin@v.loewis.de>
Sat, 14 Jun 2008 06:25:37 +0000 (06:25 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Sat, 14 Jun 2008 06:25:37 +0000 (06:25 +0000)
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.
........

Tools/scripts/svneol.py

index 5864cdcfb48ab6fde6ec5e8f6b5d5e02513644a5..9e57bb4c0f82c0666fc9aafb5aefd09e77e65f21 100644 (file)
@@ -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