Index: setuptools/command/egg_info.py
===================================================================
--- setuptools/command/egg_info.py	(revision 71559)
+++ setuptools/command/egg_info.py	(working copy)
@@ -205,8 +205,6 @@
 
     def get_svn_revision(self):
         revision = 0
-        urlre = re.compile('url="([^"]+)"')
-        revre = re.compile('committed-rev="(\d+)"')
 
         for base,dirs,files in os.walk(os.curdir):
             if '.svn' not in dirs:
@@ -217,18 +215,12 @@
             data = f.read()
             f.close()
 
-            if data.startswith('9') or data.startswith('8'):
-                data = map(str.splitlines,data.split('\n\x0c\n'))
-                del data[0][0]  # get rid of the '8' or '9'
-                dirurl = data[0][3]
-                localrev = max([int(d[9]) for d in data if len(d)>9 and d[9]]+[0])
-            elif data.startswith('<?xml'):
-                dirurl = urlre.search(data).group(1)    # get repository URL
-                localrev = max([int(m.group(1)) for m in revre.finditer(data)]+[0])
-            else:
+            ver_info = self.parse_svn_revision(data)
+            if ver_info is None:
                 log.warn("unrecognized .svn/entries format; skipping %s", base)
                 dirs[:] = []
                 continue
+            localrev, dirurl = ver_info
             if base==os.curdir:
                 base_url = dirurl+'/'   # save the root url
             elif not dirurl.startswith(base_url):
@@ -243,7 +235,49 @@
 
 
 
+    def parse_svn_revision(data):
+        result = None
+        if data.startswith('<?xml'):
+            # xml format
+            urlre = re.compile('url="([^"]+)"')
+            revre = re.compile('committed-rev="(\d+)"')
+            dirurl = urlre.search(data).group(1)    # get repository URL
+            localrev = max([int(m.group(1)) for m in revre.finditer(data)]+[0])
+            result = localrev, dirurl
+        else:
+            # assume it's text
+            SECTION_DIVIDER = '\f\n'
+            sections = data.split(SECTION_DIVIDER)
+            sections = map(str.splitlines, sections)
+            known_svn_versions = {
+                '1.4.x': 8,
+                '1.5.x': 9,
+                '1.6.x': 10,
+                }
+            try:
+                svn_version = int(sections[0].pop(0))
+                if not svn_version in known_svn_versions.values():
+                    log.warn("Unknown subversion verson %d", svn_version)
+            except ValueError:
+                return
+            dirurl = sections[0][4]
+            revision_line_number = 9
+            rev_numbers = [
+                int(section[revision_line_number])
+                for section in sections
+                if len(section)>revision_line_number
+                    and section[revision_line_number]
+                ]
+            rev_numbers.append(0)
+            localrev = max(rev_numbers)
+            result = localrev, dirurl
+        return result
+    parse_svn_revision = staticmethod(parse_svn_revision)
 
+
+
+
+
     def find_sources(self):
         """Generate SOURCES.txt manifest file"""
         manifest_filename = os.path.join(self.egg_info,"SOURCES.txt")
