diff hgext/convert/subversion.py @ 4931:2f0f9528e77b

convert/subversion: rehandle the no-tags case
author Bryan O'Sullivan <bos@serpentine.com>
date Thu, 19 Jul 2007 15:33:21 -0700
parents e8f4e40f285a
children cdd33a048289
line wrap: on
line diff
--- a/hgext/convert/subversion.py
+++ b/hgext/convert/subversion.py
@@ -206,6 +206,7 @@ class convert_svn(converter_source):
                                strict_node_history,
                                receiver)
             except SubversionException, (_, num):
+                self.ui.print_exc()
                 pickle.dump(num, fp, protocol)
             else:
                 pickle.dump(None, fp, protocol)
@@ -238,16 +239,20 @@ class convert_svn(converter_source):
 
     def gettags(self):
         tags = {}
-        for entry in self.get_log(['/tags'], 0, self.revnum(self.head)):
-            orig_paths, revnum, author, date, message = entry
-            for path in orig_paths:
-                if not path.startswith('/tags/'):
-                    continue
-                ent = orig_paths[path]
-                source = ent.copyfrom_path
-                rev = ent.copyfrom_rev
-                tag = path.split('/', 2)[2]
-                tags[tag] = self.revid(rev, module=source)
+        start = self.revnum(self.head)
+        try:
+            for entry in self.get_log(['/tags'], 0, start):
+                orig_paths, revnum, author, date, message = entry
+                for path in orig_paths:
+                    if not path.startswith('/tags/'):
+                        continue
+                    ent = orig_paths[path]
+                    source = ent.copyfrom_path
+                    rev = ent.copyfrom_rev
+                    tag = path.split('/', 2)[2]
+                    tags[tag] = self.revid(rev, module=source)
+        except SubversionException, (_, num):
+            self.ui.note('no tags found at revision %d\n' % start)
         return tags
 
     # -- helper functions --