Rev 6509: One of the discoveries from fixing bug #1046697. in http://bazaar.launchpad.net/~jameinel/bzr/2.5-remote-branch-initialize-vfs-keeps-repo
John Arbash Meinel
john at arbash-meinel.com
Thu Sep 6 08:20:11 UTC 2012
At http://bazaar.launchpad.net/~jameinel/bzr/2.5-remote-branch-initialize-vfs-keeps-repo
------------------------------------------------------------
revno: 6509
revision-id: john at arbash-meinel.com-20120906081947-osxnk7uxls1i76og
parent: pqm at pqm.ubuntu.com-20120905192959-r312gx2awcoitph0
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: 2.5-remote-branch-initialize-vfs-keeps-repo
timestamp: Thu 2012-09-06 12:19:47 +0400
message:
One of the discoveries from fixing bug #1046697.
A lightweight checkout of a remote location sprouting to a new location was not
properly passing along the newly created and initialized repository object to
'initialize' the new branch. This is because _vfs_initialize was ignoring the
parameter. So now we pass it along.
The test that failed was per_workingtree.test_get_parent_ids.TestGetParentIds.test_get_parent_ids.
-------------- next part --------------
=== modified file 'bzrlib/remote.py'
--- a/bzrlib/remote.py 2012-01-28 00:56:56 +0000
+++ b/bzrlib/remote.py 2012-09-06 08:19:47 +0000
@@ -3129,7 +3129,8 @@
return a_bzrdir.open_branch(name=name,
ignore_fallbacks=ignore_fallbacks)
- def _vfs_initialize(self, a_bzrdir, name, append_revisions_only):
+ def _vfs_initialize(self, a_bzrdir, name, append_revisions_only,
+ repository=None):
# Initialisation when using a local bzrdir object, or a non-vfs init
# method is not available on the server.
# self._custom_format is always set - the start of initialize ensures
@@ -3137,11 +3138,13 @@
if isinstance(a_bzrdir, RemoteBzrDir):
a_bzrdir._ensure_real()
result = self._custom_format.initialize(a_bzrdir._real_bzrdir,
- name=name, append_revisions_only=append_revisions_only)
+ name=name, append_revisions_only=append_revisions_only,
+ repository=repository)
else:
# We assume the bzrdir is parameterised; it may not be.
result = self._custom_format.initialize(a_bzrdir, name=name,
- append_revisions_only=append_revisions_only)
+ append_revisions_only=append_revisions_only,
+ repository=repository)
if (isinstance(a_bzrdir, RemoteBzrDir) and
not isinstance(result, RemoteBranch)):
result = RemoteBranch(a_bzrdir, a_bzrdir.find_repository(), result,
@@ -3164,11 +3167,13 @@
# Being asked to create on a non RemoteBzrDir:
if not isinstance(a_bzrdir, RemoteBzrDir):
return self._vfs_initialize(a_bzrdir, name=name,
- append_revisions_only=append_revisions_only)
+ append_revisions_only=append_revisions_only,
+ repository=repository)
medium = a_bzrdir._client._medium
if medium._is_remote_before((1, 13)):
return self._vfs_initialize(a_bzrdir, name=name,
- append_revisions_only=append_revisions_only)
+ append_revisions_only=append_revisions_only,
+ repository=repository)
# Creating on a remote bzr dir.
# 2) try direct creation via RPC
path = a_bzrdir._path_for_remote_call(a_bzrdir._client)
@@ -3182,7 +3187,8 @@
# Fallback - use vfs methods
medium._remember_remote_is_before((1, 13))
return self._vfs_initialize(a_bzrdir, name=name,
- append_revisions_only=append_revisions_only)
+ append_revisions_only=append_revisions_only,
+ repository=repository)
if response[0] != 'ok':
raise errors.UnexpectedSmartServerResponse(response)
# Turn the response into a RemoteRepository object.
More information about the bazaar-commits
mailing list