/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/repofmt/groupcompress_repo.py

  • Committer: John Arbash Meinel
  • Date: 2009-05-12 20:15:21 UTC
  • mto: This revision was merged to the branch mainline in revision 4392.
  • Revision ID: john@arbash-meinel.com-20090512201521-x55cevhrk6bvqgln
Implement get_missing_parents in terms of _KeyRefs.

This gives _GCGraphIndex a _key_dependencies variable.

Things still fail, because get_missing_parent_inventories() assumes that
fileids_altered_by_revision_ids will return file_ids for revisions
outside of the actual revisions requested.
CHKInventoryRepository actually explicitly eliminates those keys.
We may just need a custom get_missing_parent_inventories, but one
way or another we have issues.

Show diffs side-by-side

added added

removed removed

Lines of Context:
625
625
        self.revisions = GroupCompressVersionedFiles(
626
626
            _GCGraphIndex(self._pack_collection.revision_index.combined_index,
627
627
                add_callback=self._pack_collection.revision_index.add_callback,
628
 
                parents=True, is_locked=self.is_locked),
 
628
                parents=True, is_locked=self.is_locked,
 
629
                track_external_parent_refs=True),
629
630
            access=self._pack_collection.revision_index.data_access,
630
631
            delta=False)
631
632
        self.signatures = GroupCompressVersionedFiles(
752
753
    def _find_file_keys_to_fetch(self, revision_ids, pb):
753
754
        rich_root = self.supports_rich_root()
754
755
        revision_outside_set = self._find_revision_outside_set(revision_ids)
 
756
        import pdb; pdb.set_trace()
755
757
        if revision_outside_set == _mod_revision.NULL_REVISION:
756
758
            uninteresting_root_keys = set()
757
759
        else:
797
799
        pb = ui.ui_factory.nested_progress_bar()
798
800
        try:
799
801
            total = len(revision_ids)
 
802
            # TODO: This could probably be implemented in terms of
 
803
            #       'iter_inventory_deltas'. Since we only include items where
 
804
            #       'entry.revision == inv.revision_id', then we know that all
 
805
            #       the entries which are identical to another inventory are
 
806
            #       *not* going to match. Note that revision_ids may be a set,
 
807
            #       so doesn't have a great iteration order.
800
808
            for pos, inv in enumerate(self.iter_inventories(revision_ids)):
801
809
                pb.update("Finding text references", pos, total)
802
810
                for entry in inv.iter_just_entries():