Rev 6343: (jelmer) Remove the HistoryMissing exception. (Jelmer Vernooij) in file:///srv/pqm.bazaar-vcs.org/archives/thelove/bzr/%2Btrunk/

Patch Queue Manager pqm at pqm.ubuntu.com
Mon Dec 5 11:58:57 UTC 2011


At file:///srv/pqm.bazaar-vcs.org/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 6343 [merge]
revision-id: pqm at pqm.ubuntu.com-20111205115857-eakx9wlixnx2wpwz
parent: pqm at pqm.ubuntu.com-20111205113259-ias55e1z6dsn2ksp
parent: jelmer at samba.org-20111203033010-4w7u2f3yszybvatx
committer: Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Mon 2011-12-05 11:58:57 +0000
message:
  (jelmer) Remove the HistoryMissing exception. (Jelmer Vernooij)
modified:
  bzrlib/errors.py               errors.py-20050309040759-20512168c4e14fbd
  bzrlib/repofmt/groupcompress_repo.py repofmt.py-20080715094215-wp1qfvoo7093c8qr-1
  bzrlib/vf_repository.py        vf_repository.py-20110502151858-yh9nnoxpokg86unk-1
  doc/en/release-notes/bzr-2.5.txt bzr2.5.txt-20110708125756-587p0hpw7oke4h05-1
=== modified file 'bzrlib/errors.py'
--- a/bzrlib/errors.py	2011-11-28 17:43:51 +0000
+++ b/bzrlib/errors.py	2011-12-03 03:30:10 +0000
@@ -1155,11 +1155,6 @@
             self.extra = ''
 
 
-class HistoryMissing(BzrError):
-
-    _fmt = "%(branch)s is missing %(object_type)s {%(object_id)s}"
-
-
 class AppendRevisionsOnlyViolation(BzrError):
 
     _fmt = ('Operation denied because it would change the main history,'

=== modified file 'bzrlib/repofmt/groupcompress_repo.py'
--- a/bzrlib/repofmt/groupcompress_repo.py	2011-05-09 12:01:12 +0000
+++ b/bzrlib/repofmt/groupcompress_repo.py	2011-12-03 03:30:10 +0000
@@ -978,20 +978,24 @@
             if record.storage_kind != 'absent':
                 texts[record.key] = record.get_bytes_as('fulltext')
             else:
-                raise errors.NoSuchRevision(self, record.key)
+                texts[record.key] = None
         for key in keys:
-            yield inventory.CHKInventory.deserialise(self.chk_bytes, texts[key], key)
+            bytes = texts[key]
+            if bytes is None:
+                yield (None, key[-1])
+            else:
+                yield (inventory.CHKInventory.deserialise(
+                    self.chk_bytes, bytes, key), key[-1])
 
-    def _iter_inventory_xmls(self, revision_ids, ordering):
+    def _get_inventory_xml(self, revision_id):
+        """Get serialized inventory as a string."""
         # Without a native 'xml' inventory, this method doesn't make sense.
         # However older working trees, and older bundles want it - so we supply
         # it allowing _get_inventory_xml to work. Bundles currently use the
         # serializer directly; this also isn't ideal, but there isn't an xml
-        # iteration interface offered at all for repositories. We could make
-        # _iter_inventory_xmls be part of the contract, even if kept private.
-        inv_to_str = self._serializer.write_inventory_to_string
-        for inv in self.iter_inventories(revision_ids, ordering=ordering):
-            yield inv_to_str(inv), inv.revision_id
+        # iteration interface offered at all for repositories.
+        return self._serializer.write_inventory_to_string(
+            self.get_inventory(revision_id))
 
     def _find_present_inventory_keys(self, revision_keys):
         parent_map = self.inventories.get_parent_map(revision_keys)

=== modified file 'bzrlib/vf_repository.py'
--- a/bzrlib/vf_repository.py	2011-11-20 02:16:25 +0000
+++ b/bzrlib/vf_repository.py	2011-12-03 03:30:10 +0000
@@ -1700,13 +1700,19 @@
         if ((None in revision_ids)
             or (_mod_revision.NULL_REVISION in revision_ids)):
             raise ValueError('cannot get null revision inventory')
-        return self._iter_inventories(revision_ids, ordering)
+        for inv, revid in self._iter_inventories(revision_ids, ordering):
+            if inv is None:
+                raise errors.NoSuchRevision(self, revid)
+            yield inv
 
     def _iter_inventories(self, revision_ids, ordering):
         """single-document based inventory iteration."""
         inv_xmls = self._iter_inventory_xmls(revision_ids, ordering)
         for text, revision_id in inv_xmls:
-            yield self._deserialise_inventory(revision_id, text)
+            if text is None:
+                yield None, revision_id
+            else:
+                yield self._deserialise_inventory(revision_id, text), revision_id
 
     def _iter_inventory_xmls(self, revision_ids, ordering):
         if ordering is None:
@@ -1730,7 +1736,7 @@
                 else:
                     yield ''.join(chunks), record.key[-1]
             else:
-                raise errors.NoSuchRevision(self, record.key)
+                yield None, record.key[-1]
             if order_as_requested:
                 # Yield as many results as we can while preserving order.
                 while next_key in text_chunks:
@@ -1765,10 +1771,9 @@
     def _get_inventory_xml(self, revision_id):
         """Get serialized inventory as a string."""
         texts = self._iter_inventory_xmls([revision_id], 'unordered')
-        try:
-            text, revision_id = texts.next()
-        except StopIteration:
-            raise errors.HistoryMissing(self, 'inventory', revision_id)
+        text, revision_id = texts.next()
+        if text is None:
+            raise errors.NoSuchRevision(self, revision_id)
         return text
 
     @needs_read_lock

=== modified file 'doc/en/release-notes/bzr-2.5.txt'
--- a/doc/en/release-notes/bzr-2.5.txt	2011-12-02 12:35:10 +0000
+++ b/doc/en/release-notes/bzr-2.5.txt	2011-12-03 03:30:10 +0000
@@ -151,6 +151,9 @@
 * Some global options for use with commands have been removed, construct
   an ``Option`` with the name instead. (Martin Packman)
 
+* The unused exception ``HistoryMissing`` has been removed.
+  (Jelmer Vernooij)
+
 Internals
 *********
 




More information about the bazaar-commits mailing list