Rev 4597: Disable commit builders on stacked repositories. in http://bazaar.launchpad.net/~lifeless/bzr/bug-375013
Robert Collins
robertc at robertcollins.net
Tue Aug 11 03:45:50 BST 2009
At http://bazaar.launchpad.net/~lifeless/bzr/bug-375013
------------------------------------------------------------
revno: 4597
revision-id: robertc at robertcollins.net-20090811024536-hlpc7pf5vh3kxd1b
parent: robertc at robertcollins.net-20090810051914-7akjrq0s5qcxz7bm
committer: Robert Collins <robertc at robertcollins.net>
branch nick: bug-375013
timestamp: Tue 2009-08-11 12:45:36 +1000
message:
Disable commit builders on stacked repositories.
=== modified file 'bzrlib/repository.py'
--- a/bzrlib/repository.py 2009-08-06 02:23:37 +0000
+++ b/bzrlib/repository.py 2009-08-11 02:45:36 +0000
@@ -1695,6 +1695,10 @@
:param revprops: Optional dictionary of revision properties.
:param revision_id: Optional revision id.
"""
+ if self._fallback_repositories:
+ raise errors.BzrError("Cannot commit from a lightweight checkout "
+ "to a stacked branch. See "
+ "https://bugs.launchpad.net/bzr/+bug/375013 for details.")
result = self._commit_builder_class(self, parents, config,
timestamp, timezone, committer, revprops, revision_id)
self.start_write_group()
=== modified file 'bzrlib/tests/per_repository/test_commit_builder.py'
--- a/bzrlib/tests/per_repository/test_commit_builder.py 2009-05-06 05:36:28 +0000
+++ b/bzrlib/tests/per_repository/test_commit_builder.py 2009-08-11 02:45:36 +0000
@@ -1267,3 +1267,19 @@
self.addCleanup(branch.repository.abort_write_group)
self.assertRaises(ValueError, builder.commit,
u'Invalid\r\ncommit message\r\n')
+
+ def test_stacked_repositories_reject_commit_builder(self):
+ # As per bug 375013, committing to stacked repositories is currently
+ # broken, so repositories with fallbacks refuse to hand out a commit
+ # builder.
+ repo_basis = self.make_repository('basis')
+ branch = self.make_branch('local')
+ repo_local = branch.repository
+ try:
+ repo_local.add_fallback_repository(repo_basis)
+ except errors.UnstackableRepositoryFormat:
+ raise tests.TestNotApplicable("not a stackable format.")
+ repo_local.lock_write()
+ self.addCleanup(repo_local.unlock)
+ self.assertRaises(errors.BzrError, repo_local.get_commit_builder,
+ branch, [], branch.get_config())
More information about the bazaar-commits
mailing list