aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/command/sdist.py
diff options
context:
space:
mode:
authorPJ Eby <distutils-sig@python.org>2006-09-17 16:20:47 +0000
committerPJ Eby <distutils-sig@python.org>2006-09-17 16:20:47 +0000
commit7231e48929b6f4026bb14307185a5837bda115fa (patch)
tree445db417c6051c8f1ba58fe237c2794261aa59a7 /setuptools/command/sdist.py
parenta1a8375c3b5b70f52653110a620ab8179d8d7995 (diff)
downloadexternal_python_setuptools-7231e48929b6f4026bb14307185a5837bda115fa.tar.gz
external_python_setuptools-7231e48929b6f4026bb14307185a5837bda115fa.tar.bz2
external_python_setuptools-7231e48929b6f4026bb14307185a5837bda115fa.zip
Support svn 1.4 working copy format (backport from trunk)
--HG-- branch : setuptools-0.6 extra : convert_revision : svn%3A6015fed2-1504-0410-9fe1-9d1591cc4771/sandbox/branches/setuptools-0.6%4051900
Diffstat (limited to 'setuptools/command/sdist.py')
-rwxr-xr-xsetuptools/command/sdist.py42
1 files changed, 21 insertions, 21 deletions
diff --git a/setuptools/command/sdist.py b/setuptools/command/sdist.py
index 4cc0ae1f..fc5bdfb2 100755
--- a/setuptools/command/sdist.py
+++ b/setuptools/command/sdist.py
@@ -80,16 +80,31 @@ def externals_finder(dirname, filename):
yield joinpath(dirname, parts[0])
+entries_pattern = re.compile(r'name="([^"]+)"(?![^>]+deleted="true")', re.I)
+
+def entries_finder(dirname, filename):
+ f = open(filename,'rU')
+ data = f.read()
+ f.close()
+ if data.startswith('8'): # subversion 1.4
+ for record in map(str.splitlines, data.split('\n\x0c\n')[1:]):
+ if not record or len(record)>=6 and record[5]=="delete":
+ continue # skip deleted
+ yield joinpath(dirname, record[0])
+ elif data.startswith('<?xml'):
+ for match in entries_pattern.finditer(data):
+ yield joinpath(dirname,unescape(match.group(1)))
+ else:
+ from warnings import warn
+ warn("unrecognized .svn/entries format in "+dirname)
+
+
finders = [
(convert_path('CVS/Entries'),
re_finder(re.compile(r"^\w?/([^/]+)/", re.M))),
- (convert_path('.svn/entries'),
- re_finder(
- re.compile(r'name="([^"]+)"(?![^>]+deleted="true")', re.I),
- unescape
- )
- ),
+ (convert_path('.svn/entries'), entries_finder),
(convert_path('.svn/dir-props'), externals_finder),
+ (convert_path('.svn/dir-prop-base'), externals_finder), # svn 1.4
]
@@ -106,21 +121,6 @@ finders = [
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class sdist(_sdist):
"""Smart sdist that finds anything supported by revision control"""