~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/repofmt/knitrepo.py

s/NotInOtherForRev/NotInOtherForRevs/, and allow passing multiple revision_ids to search_missing_revision_ids.

Show diffs side-by-side

added added

removed removed

Lines of Context:
43
43
    RepositoryFormat,
44
44
    RootCommitBuilder,
45
45
    )
 
46
from bzrlib import symbol_versioning
46
47
 
47
48
 
48
49
class _KnitParentsProvider(object):
534
535
        return are_knits and InterRepository._same_model(source, target)
535
536
 
536
537
    @needs_read_lock
537
 
    def search_missing_revision_ids(self, revision_id=None, find_ghosts=True):
538
 
        """See InterRepository.missing_revision_ids()."""
539
 
        if revision_id is not None:
540
 
            source_ids = self.source.get_ancestry(revision_id)
541
 
            if source_ids[0] is not None:
542
 
                raise AssertionError()
543
 
            source_ids.pop(0)
544
 
        else:
545
 
            source_ids = self.source.all_revision_ids()
546
 
        source_ids_set = set(source_ids)
 
538
    def search_missing_revision_ids(self,
 
539
            revision_id=symbol_versioning.DEPRECATED_PARAMETER,
 
540
            find_ghosts=True, revision_ids=None):
 
541
        """See InterRepository.searcH_missing_revision_ids()."""
 
542
        if symbol_versioning.deprecated_passed(revision_id):
 
543
            symbol_versioning.warn(
 
544
                'search_missing_revision_ids(revision_id=...) was '
 
545
                'deprecated in 2.3.  Use revision_ids=[...] instead.',
 
546
                DeprecationWarning, stacklevel=2)
 
547
            if revision_ids is not None:
 
548
                raise AssertionError(
 
549
                    'revision_ids is mutually exclusive with revision_id')
 
550
            if revision_id is not None:
 
551
                revision_ids = [revision_id]
 
552
        del revision_id
 
553
        source_ids_set = self._present_source_revisions_for(revision_ids)
547
554
        # source_ids is the worst possible case we may need to pull.
548
555
        # now we want to filter source_ids against what we actually
549
556
        # have in target, but don't try to check for existence where we know
553
560
        actually_present_revisions = set(
554
561
            self.target._eliminate_revisions_not_present(possibly_present_revisions))
555
562
        required_revisions = source_ids_set.difference(actually_present_revisions)
556
 
        if revision_id is not None:
 
563
        if revision_ids is not None:
557
564
            # we used get_ancestry to determine source_ids then we are assured all
558
565
            # revisions referenced are present as they are installed in topological order.
559
566
            # and the tip revision was validated by get_ancestry.