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