Rev 6403: (jelmer) Use real commit object in RemoteRepository.get_commit_builder. in file:///srv/pqm.bazaar-vcs.org/archives/thelove/bzr/%2Btrunk/
Patch Queue Manager
pqm at pqm.ubuntu.com
Thu Dec 22 16:44:41 UTC 2011
At file:///srv/pqm.bazaar-vcs.org/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 6403 [merge]
revision-id: pqm at pqm.ubuntu.com-20111222164440-bz1x4fw3k6aweupn
parent: pqm at pqm.ubuntu.com-20111221215631-coxvalt3phw8jaza
parent: jelmer at samba.org-20111222161831-4c2mj8x89741y8x2
committer: Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Thu 2011-12-22 16:44:40 +0000
message:
(jelmer) Use real commit object in RemoteRepository.get_commit_builder.
(Jelmer Vernooij)
modified:
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/tests/blackbox/test_commit.py test_commit.py-20060212094538-ae88fc861d969db0
bzrlib/tests/per_repository/test_commit_builder.py test_commit_builder.py-20060606110838-76e3ra5slucqus81-1
=== modified file 'bzrlib/remote.py'
--- a/bzrlib/remote.py 2011-12-18 12:46:49 +0000
+++ b/bzrlib/remote.py 2011-12-22 16:18:31 +0000
@@ -1211,6 +1211,8 @@
if response != ('ok', ):
raise errors.UnexpectedSmartServerResponse(response)
self._write_group_tokens = None
+ # Refresh data after writing to the repository.
+ self.refresh_data()
def resume_write_group(self, tokens):
if self._real_repository:
@@ -1765,15 +1767,32 @@
def get_commit_builder(self, branch, parents, config, timestamp=None,
timezone=None, committer=None, revprops=None,
revision_id=None, lossy=False):
- # FIXME: It ought to be possible to call this without immediately
- # triggering _ensure_real. For now it's the easiest thing to do.
- self._ensure_real()
- real_repo = self._real_repository
- builder = real_repo.get_commit_builder(branch, parents,
- config, timestamp=timestamp, timezone=timezone,
- committer=committer, revprops=revprops,
- revision_id=revision_id, lossy=lossy)
- return builder
+ """Obtain a CommitBuilder for this repository.
+
+ :param branch: Branch to commit to.
+ :param parents: Revision ids of the parents of the new revision.
+ :param config: Configuration to use.
+ :param timestamp: Optional timestamp recorded for commit.
+ :param timezone: Optional timezone for timestamp.
+ :param committer: Optional committer to set for commit.
+ :param revprops: Optional dictionary of revision properties.
+ :param revision_id: Optional revision id.
+ :param lossy: Whether to discard data that can not be natively
+ represented, when pushing to a foreign VCS
+ """
+ if self._fallback_repositories and not self._format.supports_chks:
+ raise errors.BzrError("Cannot commit directly to a stacked branch"
+ " in pre-2a formats. See "
+ "https://bugs.launchpad.net/bzr/+bug/375013 for details.")
+ if self._format.rich_root_data:
+ commit_builder_kls = vf_repository.VersionedFileRootCommitBuilder
+ else:
+ commit_builder_kls = vf_repository.VersionedFileCommitBuilder
+ result = commit_builder_kls(self, parents, config,
+ timestamp, timezone, committer, revprops, revision_id,
+ lossy)
+ self.start_write_group()
+ return result
def add_fallback_repository(self, repository):
"""Add a repository to use for looking up data not held locally.
@@ -1993,6 +2012,9 @@
"""
if self._real_repository is not None:
self._real_repository.refresh_data()
+ # Refresh the parents cache for this object
+ self._unstacked_provider.disable_cache()
+ self._unstacked_provider.enable_cache()
def revision_ids_to_search_result(self, result_set):
"""Convert a set of revision ids to a graph SearchResult."""
=== modified file 'bzrlib/tests/blackbox/test_commit.py'
--- a/bzrlib/tests/blackbox/test_commit.py 2011-12-20 18:47:35 +0000
+++ b/bzrlib/tests/blackbox/test_commit.py 2011-12-22 16:18:31 +0000
@@ -889,6 +889,6 @@
# being too low. If rpc_count increases, more network roundtrips have
# become necessary for this use case. Please do not adjust this number
# upwards without agreement from bzr's network support maintainers.
- self.assertLength(211, self.hpss_calls)
+ self.assertLength(213, self.hpss_calls)
self.expectFailure("commit still uses VFS calls",
self.assertThat, self.hpss_calls, ContainsNoVfsCalls)
=== modified file 'bzrlib/tests/per_repository/test_commit_builder.py'
--- a/bzrlib/tests/per_repository/test_commit_builder.py 2011-12-09 13:00:30 +0000
+++ b/bzrlib/tests/per_repository/test_commit_builder.py 2011-12-22 16:17:28 +0000
@@ -323,6 +323,7 @@
# pointless commit.
self.assertFalse(builder.any_changes())
builder.finish_inventory()
+ builder.commit('')
builder_tree = builder.revision_tree()
new_root_id = builder_tree.get_root_id()
new_root_revision = builder_tree.get_file_revision(new_root_id)
@@ -333,7 +334,6 @@
# We should see a new root revision
self.assertNotEqual(old_revision_id, new_root_revision)
finally:
- builder.abort()
tree.unlock()
def test_commit_record_entry_contents(self):
@@ -992,6 +992,7 @@
[inv_key])[inv_key]
self.assertEqual(inv_sha1, builder.inv_sha1)
self.assertIs(None, builder.new_inventory)
+ rev2 = builder.commit('')
new_inventory = builder.revision_tree().inventory
new_entry = new_inventory[file_id]
if delta_against_basis:
@@ -1000,7 +1001,6 @@
else:
expected_delta = None
self.assertFalse(version_recorded)
- rev2 = builder.commit('')
tree.set_parent_ids([rev2])
except:
builder.abort()
More information about the bazaar-commits
mailing list