534
535
return are_knits and InterRepository._same_model(source, target)
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()
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]
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.