Rev 2268: Add better exception. in http://people.samba.org/bzr/jelmer/bzr-svn/0.5

Jelmer Vernooij jelmer at samba.org
Tue Dec 16 01:26:36 GMT 2008


At http://people.samba.org/bzr/jelmer/bzr-svn/0.5

------------------------------------------------------------
revno: 2268
revision-id: jelmer at samba.org-20081216012633-hsasmt3ur22p54t7
parent: jelmer at samba.org-20081216003248-y6ws5ufw83xngfqr
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.5
timestamp: Tue 2008-12-16 02:26:33 +0100
message:
  Add better exception.
modified:
  errors.py                      errors.py-20061226172623-w1sbj8ynpo0eojqp-1
  fetch.py                       fetch.py-20060625004942-x2lfaib8ra707a8p-1
=== modified file 'errors.py'
--- a/errors.py	2008-11-30 17:01:54 +0000
+++ b/errors.py	2008-12-16 01:26:33 +0000
@@ -170,3 +170,12 @@
            ' branch "%(location)s".')
 
 
+class FileIdMapIncomplete(BzrError):
+    _fmt = """Unable to find file id for child '%(child)s' in '%(parent)s' in %(revmeta)r."""
+
+    def __init__(self, child, parent, revmeta):
+        BzrError.__init__(self)
+        self.child = child
+        self.parent = parent
+        self.revmeta = revmeta
+

=== modified file 'fetch.py'
--- a/fetch.py	2008-12-08 19:13:32 +0000
+++ b/fetch.py	2008-12-16 01:26:33 +0000
@@ -34,7 +34,7 @@
 from subvertpy import properties, SubversionException
 from subvertpy.delta import apply_txdelta_handler
 
-from bzrlib.plugins.svn.errors import InvalidFileName
+from bzrlib.plugins.svn.errors import InvalidFileName, FileIdMapIncomplete
 from bzrlib.plugins.svn.foreign import escape_commit_message
 from bzrlib.plugins.svn.mapping import SVN_PROP_BZR_PREFIX
 from bzrlib.plugins.svn.repository import SvnRepository, SvnRepositoryFormat
@@ -568,10 +568,16 @@
         basename = urlutils.basename(old_path)
         parent_id_basename_index = getattr(self.old_inventory, "parent_id_basename_to_file_id", None)
         if parent_id_basename_index is None:
-            return self.old_inventory[parent_id].children[basename].file_id
+            try:
+                return self.old_inventory[parent_id].children[basename].file_id
+            except KeyError:
+                raise FileIdMapIncomplete(basename, self.old_inventory.id2path(parent_id), self.revmeta) 
         else:
             ret = parent_id_basename_index.iteritems([(parent_id, basename)])
-            return ret.next()[1]
+            try:
+                return ret.next()[1]
+            except IndexError:
+                raise FileIdMapIncomplete(basename, self.old_inventory.id2path(parent_id), self.revmeta) 
 
     def _get_existing_id(self, old_parent_id, new_parent_id, path):
         assert isinstance(path, unicode)




More information about the bazaar-commits mailing list