Rev 4058: Review feedback on RemoteRepository._set_real_revision. in http://people.ubuntu.com/~robertc/baz2.0/RemoteRepository._format

Robert Collins robertc at robertcollins.net
Fri Feb 27 01:22:03 GMT 2009


At http://people.ubuntu.com/~robertc/baz2.0/RemoteRepository._format

------------------------------------------------------------
revno: 4058
revision-id: robertc at robertcollins.net-20090227012159-yjt7dkch5veg5yjq
parent: robertc at robertcollins.net-20090227010240-35dzaxn8bah0razi
committer: Robert Collins <robertc at robertcollins.net>
branch nick: RemoteRepository._format
timestamp: Fri 2009-02-27 12:21:59 +1100
message:
  Review feedback on RemoteRepository._set_real_revision.
=== modified file 'bzrlib/remote.py'
--- a/bzrlib/remote.py	2009-02-27 01:02:40 +0000
+++ b/bzrlib/remote.py	2009-02-27 01:21:59 +0000
@@ -792,11 +792,12 @@
         :param repository: The repository to fallback to for non-hpss
             implemented operations.
         """
-        # There was an assertion that this real repository was never replaced;
-        # However for down level serves we always open the real repository,
-        # which means that opening the branch ends up replacing it. Rather than
-        # write to real_branch.repository, we just allow the _real_repository
-        # object to be replaced.
+        if self._real_repository is not None:
+            # Replacing an already set real repository.
+            # We cannot do this [currently] if the repository is locked -
+            # synchronised state might be lost.
+            if self.is_locked():
+                raise AssertionError('_real_repository is already set')
         if isinstance(repository, RemoteRepository):
             raise AssertionError()
         self._real_repository = repository




More information about the bazaar-commits mailing list