~garyvdm/bzr/diff_ext_tree

« back to all changes in this revision

Viewing changes to bzrlib/remote.py

(lifeless) Don't allow RemoteRepository to stack on an incompatible-format repository. (#562380) (Andrew Bennetts)

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
    lock,
28
28
    lockdir,
29
29
    repository,
 
30
    repository as _mod_repository,
30
31
    revision,
31
32
    revision as _mod_revision,
32
33
    static_tuple,
1227
1228
            # state, so always add a lock here. If a caller passes us a locked
1228
1229
            # repository, they are responsible for unlocking it later.
1229
1230
            repository.lock_read()
 
1231
        self._check_fallback_repository(repository)
1230
1232
        self._fallback_repositories.append(repository)
1231
1233
        # If self._real_repository was parameterised already (e.g. because a
1232
1234
        # _real_branch had its get_stacked_on_url method called), then the
1237
1239
            if repository.bzrdir.root_transport.base not in fallback_locations:
1238
1240
                self._real_repository.add_fallback_repository(repository)
1239
1241
 
 
1242
    def _check_fallback_repository(self, repository):
 
1243
        """Check that this repository can fallback to repository safely.
 
1244
 
 
1245
        Raise an error if not.
 
1246
 
 
1247
        :param repository: A repository to fallback to.
 
1248
        """
 
1249
        return _mod_repository.InterRepository._assert_same_model(
 
1250
            self, repository)
 
1251
 
1240
1252
    def add_inventory(self, revid, inv, parents):
1241
1253
        self._ensure_real()
1242
1254
        return self._real_repository.add_inventory(revid, inv, parents)