~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/repofmt/groupcompress_repo.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-06-02 15:39:06 UTC
  • mfrom: (4393.2.2 bzr.ls-fix)
  • Revision ID: pqm@pqm.ubuntu.com-20090602153906-1q6bresxw669b34i
(Mattias Eriksson) Clear the terminal before outputing 'bzr ls'
        results.

Show diffs side-by-side

added added

removed removed

Lines of Context:
857
857
        self._chk_id_roots = None
858
858
        self._chk_p_id_roots = None
859
859
 
860
 
    def _get_inventory_stream(self, inventory_keys):
 
860
    def _get_inventory_stream(self, inventory_keys, allow_absent=False):
861
861
        """Get a stream of inventory texts.
862
862
 
863
863
        When this function returns, self._chk_id_roots and self._chk_p_id_roots
872
872
            stream = source_vf.get_record_stream(inventory_keys,
873
873
                                                 'groupcompress', True)
874
874
            for record in stream:
 
875
                if record.storage_kind == 'absent':
 
876
                    if allow_absent:
 
877
                        continue
 
878
                    else:
 
879
                        raise errors.NoSuchRevision(self, record.key)
875
880
                bytes = record.get_bytes_as('fulltext')
876
881
                chk_inv = inventory.CHKInventory.deserialise(None, bytes,
877
882
                                                             record.key)
981
986
            raise AssertionError('Cannot call get_stream_for_missing_keys'
982
987
                ' untill all of get_stream() has been consumed.')
983
988
        # Yield the inventory stream, so we can find the chk stream
984
 
        yield self._get_inventory_stream(missing_inventory_keys)
 
989
        # Some of the missing_keys will be missing because they are ghosts.
 
990
        # As such, we can ignore them. The Sink is required to verify there are
 
991
        # no unavailable texts when the ghost inventories are not filled in.
 
992
        yield self._get_inventory_stream(missing_inventory_keys,
 
993
                                         allow_absent=True)
985
994
        # We use the empty set for excluded_revision_ids, to make it clear that
986
995
        # we want to transmit all referenced chk pages.
987
996
        for stream_info in self._get_filtered_chk_streams(set()):