/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/repository.py

  • Committer: John Arbash Meinel
  • Date: 2007-12-18 17:06:42 UTC
  • mto: This revision was merged to the branch mainline in revision 3126.
  • Revision ID: john@arbash-meinel.com-20071218170642-nls9ory76cmh4r6y
Implement get_parent_map for ParentProviders
Add a CachingParentProvider for PackRepository to use.
Add some XFAIL tests for the find_difference algorithm.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1645
1645
 
1646
1646
    def get_parents(self, revision_ids):
1647
1647
        """See StackedParentsProvider.get_parents"""
1648
 
        parents_list = []
1649
 
        for revision_id in revision_ids:
 
1648
        parent_map = self.get_parent_map(revision_ids)
 
1649
        return [parent_map.get(r, None) for r in revision_ids]
 
1650
 
 
1651
    def get_parent_map(self, keys):
 
1652
        """See graph._StackedParentsProvider.get_parent_map"""
 
1653
        parent_map = {}
 
1654
        for revision_id in keys:
1650
1655
            if revision_id == _mod_revision.NULL_REVISION:
1651
 
                parents = []
 
1656
                parents[revision_id] = []
1652
1657
            else:
1653
1658
                try:
1654
 
                    parents = self.get_revision(revision_id).parent_ids
 
1659
                    parent_ids = self.get_revision(revision_id).parent_ids
1655
1660
                except errors.NoSuchRevision:
1656
 
                    parents = None
 
1661
                    pass
1657
1662
                else:
1658
 
                    if len(parents) == 0:
1659
 
                        parents = [_mod_revision.NULL_REVISION]
1660
 
            parents_list.append(parents)
1661
 
        return parents_list
 
1663
                    if len(parent_ids) == 0:
 
1664
                        parent_ids = [_mod_revision.NULL_REVISION]
 
1665
                    parent_map[revision_id] = parent_ids
 
1666
        return parent_map
1662
1667
 
1663
1668
    def _make_parents_provider(self):
1664
1669
        return self