Rev 5661: Merge Gary's update, tweak the test a little bit. in http://bazaar.launchpad.net/~bzr-pqm/bzr/2.3
John Arbash Meinel
john at arbash-meinel.com
Mon Aug 29 17:17:39 UTC 2011
At http://bazaar.launchpad.net/~bzr-pqm/bzr/2.3
------------------------------------------------------------
revno: 5661 [merge]
revision-id: john at arbash-meinel.com-20110829171713-wzgck1rue44s95r6
parent: pqm at pqm.ubuntu.com-20110820123150-epmi6cndc5lcv8ab
parent: gary.poster at canonical.com-20110829155144-c61oihmoah4m63zi
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: pqm
timestamp: Mon 2011-08-29 19:17:13 +0200
message:
Merge Gary's update, tweak the test a little bit.
modified:
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/tests/per_repository_reference/__init__.py __init__.py-20080220025549-nnm2s80it1lvcwnc-2
-------------- next part --------------
=== modified file 'bzrlib/remote.py'
--- a/bzrlib/remote.py 2011-02-28 23:07:53 +0000
+++ b/bzrlib/remote.py 2011-08-27 02:14:12 +0000
@@ -1250,12 +1250,13 @@
# We need to accumulate additional repositories here, to pass them in
# on various RPC's.
#
+ # Make the check before we lock: this raises an exception.
+ self._check_fallback_repository(repository)
if self.is_locked():
# We will call fallback.unlock() when we transition to the unlocked
# state, so always add a lock here. If a caller passes us a locked
# repository, they are responsible for unlocking it later.
repository.lock_read()
- self._check_fallback_repository(repository)
self._fallback_repositories.append(repository)
# If self._real_repository was parameterised already (e.g. because a
# _real_branch had its get_stacked_on_url method called), then the
=== modified file 'bzrlib/repository.py'
--- a/bzrlib/repository.py 2011-01-13 00:41:19 +0000
+++ b/bzrlib/repository.py 2011-08-27 02:14:12 +0000
@@ -1046,11 +1046,12 @@
"""
if not self._format.supports_external_lookups:
raise errors.UnstackableRepositoryFormat(self._format, self.base)
+ # Make the check before we lock: this raises an exception.
+ self._check_fallback_repository(repository)
if self.is_locked():
# This repository will call fallback.unlock() when we transition to
# the unlocked state, so we make sure to increment the lock count
repository.lock_read()
- self._check_fallback_repository(repository)
self._fallback_repositories.append(repository)
self.texts.add_fallback_versioned_files(repository.texts)
self.inventories.add_fallback_versioned_files(repository.inventories)
=== modified file 'bzrlib/tests/per_repository_reference/__init__.py'
--- a/bzrlib/tests/per_repository_reference/__init__.py 2011-02-09 06:35:00 +0000
+++ b/bzrlib/tests/per_repository_reference/__init__.py 2011-08-29 17:17:13 +0000
@@ -67,17 +67,25 @@
class TestIncompatibleStacking(TestCaseWithRepository):
def test_add_fallback_repository_rejects_incompatible(self):
- # Repository.add_fallback_repository raises IncompatibleRepositories if
- # you take two repositories in different serializations and try to
- # stack them.
- if self.make_repository('test')._format.supports_chks:
+ # Repository.add_fallback_repository raises IncompatibleRepositories
+ # if you take two repositories in different serializations and try to
+ # stack them. If the referring repo is locked, the repo on which
+ # it is stacked should not be after the check fails.
+ referring = self.make_repository('referring')
+ if referring._format.supports_chks:
different_fmt = '1.9'
else:
different_fmt = '2a'
+ referring.lock_read()
+ self.addCleanup(referring.unlock)
repo = self.make_repository('repo', format=different_fmt)
- referring = self.make_repository('referring')
+ # Assert precondition.
+ self.assertFalse(repo.is_locked())
+ # Assert action.
self.assertRaises(errors.IncompatibleRepositories,
referring.add_fallback_repository, repo)
+ # Assert postcondition.
+ self.assertFalse(repo.is_locked())
def external_reference_test_scenarios():
More information about the bazaar-commits
mailing list