~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/btree_index.py

  • Committer: John Arbash Meinel
  • Date: 2009-08-17 22:11:06 UTC
  • mto: This revision was merged to the branch mainline in revision 4629.
  • Revision ID: john@arbash-meinel.com-20090817221106-snef4s9g2f7zue60
Finish implementation tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
444
444
            return iterators[0]
445
445
        return self._iter_smallest(iterators)
446
446
 
447
 
    def find_ancestry(self, keys, ref_list_num):
448
 
        """See CombinedGraphIndex.find_ancestry()"""
449
 
        pending = set(keys)
450
 
        parent_map = {}
451
 
        missing_keys = set()
452
 
        while pending:
453
 
            next_pending = set()
454
 
            for _, key, value, ref_lists in self.iter_entries(pending):
455
 
                parent_keys = ref_lists[ref_list_num]
456
 
                parent_map[key] = parent_keys
457
 
                next_pending.update([p for p in parent_keys if p not in
458
 
                                     parent_map])
459
 
                missing_keys.update(pending.difference(parent_map))
460
 
            pending = next_pending
461
 
        return parent_map, missing_keys
462
 
 
463
447
    def iter_entries(self, keys):
464
448
        """Iterate over keys within the index.
465
449