~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/repofmt/weaverepo.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2011-01-14 17:18:23 UTC
  • mfrom: (5536.2.9 fetch-dev-docs)
  • Revision ID: pqm@pqm.ubuntu.com-20110114171823-5gx64sero62ag6r4
(jelmer) Add a developer doc on the topic of fetch. (Andrew Bennetts)

Show diffs side-by-side

added added

removed removed

Lines of Context:
40
40
    lockable_files,
41
41
    lockdir,
42
42
    osutils,
 
43
    symbol_versioning,
43
44
    trace,
44
45
    tuned_gzip,
45
46
    urlutils,
807
808
            self.target.fetch(self.source, revision_id=revision_id)
808
809
 
809
810
    @needs_read_lock
810
 
    def search_missing_revision_ids(self, revision_id=None, find_ghosts=True):
811
 
        """See InterRepository.missing_revision_ids()."""
 
811
    def search_missing_revision_ids(self,
 
812
            revision_id=symbol_versioning.DEPRECATED_PARAMETER,
 
813
            find_ghosts=True, revision_ids=None, if_present_ids=None):
 
814
        """See InterRepository.search_missing_revision_ids()."""
812
815
        # we want all revisions to satisfy revision_id in source.
813
816
        # but we don't want to stat every file here and there.
814
817
        # we want then, all revisions other needs to satisfy revision_id
820
823
        # disk format scales terribly for push anyway due to rewriting
821
824
        # inventory.weave, this is considered acceptable.
822
825
        # - RBC 20060209
823
 
        if revision_id is not None:
824
 
            source_ids = self.source.get_ancestry(revision_id)
825
 
            if source_ids[0] is not None:
826
 
                raise AssertionError()
827
 
            source_ids.pop(0)
828
 
        else:
829
 
            source_ids = self.source._all_possible_ids()
830
 
        source_ids_set = set(source_ids)
 
826
        if symbol_versioning.deprecated_passed(revision_id):
 
827
            symbol_versioning.warn(
 
828
                'search_missing_revision_ids(revision_id=...) was '
 
829
                'deprecated in 2.3.  Use revision_ids=[...] instead.',
 
830
                DeprecationWarning, stacklevel=2)
 
831
            if revision_ids is not None:
 
832
                raise AssertionError(
 
833
                    'revision_ids is mutually exclusive with revision_id')
 
834
            if revision_id is not None:
 
835
                revision_ids = [revision_id]
 
836
        del revision_id
 
837
        source_ids_set = self._present_source_revisions_for(
 
838
            revision_ids, if_present_ids)
831
839
        # source_ids is the worst possible case we may need to pull.
832
840
        # now we want to filter source_ids against what we actually
833
841
        # have in target, but don't try to check for existence where we know
837
845
        actually_present_revisions = set(
838
846
            self.target._eliminate_revisions_not_present(possibly_present_revisions))
839
847
        required_revisions = source_ids_set.difference(actually_present_revisions)
840
 
        if revision_id is not None:
 
848
        if revision_ids is not None:
841
849
            # we used get_ancestry to determine source_ids then we are assured all
842
850
            # revisions referenced are present as they are installed in topological order.
843
851
            # and the tip revision was validated by get_ancestry.