Rev 3215: (robertc) RemoteBzrDir._get_tree_branch no longer triggers in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Tue Feb 5 23:13:27 GMT 2008
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 3215
revision-id:pqm at pqm.ubuntu.com-20080205231318-dcc9hdxcxjd7hx79
parent: pqm at pqm.ubuntu.com-20080205140329-aw3rmrn6hk967kyc
parent: robertc at robertcollins.net-20080204035039-gdwcyz8gopti4r0l
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2008-02-05 23:13:18 +0000
message:
(robertc) RemoteBzrDir._get_tree_branch no longer triggers
_ensure_real removing one round trip on many network
operations. (Robert Collins)
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/tests/test_remote.py test_remote.py-20060720103555-yeeg2x51vn0rbtdp-2
------------------------------------------------------------
revno: 3211.4.1
revision-id:robertc at robertcollins.net-20080204035039-gdwcyz8gopti4r0l
parent: pqm at pqm.ubuntu.com-20080201053934-q32y2nk5vvo13c6v
committer: Robert Collins <robertc at robertcollins.net>
branch nick: RemoteBzrDir._get_tree_branch
timestamp: Mon 2008-02-04 14:50:39 +1100
message:
* ``RemoteBzrDir._get_tree_branch`` no longer triggers ``_ensure_real``,
removing one round trip on many network operations. (Robert Collins)
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/tests/test_remote.py test_remote.py-20060720103555-yeeg2x51vn0rbtdp-2
=== modified file 'NEWS'
--- a/NEWS 2008-02-05 14:03:29 +0000
+++ b/NEWS 2008-02-05 23:13:18 +0000
@@ -153,6 +153,9 @@
``Repository.get_data_stream_for_search`` which allows less network
traffic when requesting data streams over a smart server. (Robert Collins)
+ * ``RemoteBzrDir._get_tree_branch`` no longer triggers ``_ensure_real``,
+ removing one round trip on many network operations. (Robert Collins)
+
* Repository has a new method ``has_revisions`` which signals the presence
of many revisions by returning a set of the revisions listed which are
present. This can be done by index queries without reading data for parent
=== modified file 'bzrlib/bzrdir.py'
--- a/bzrlib/bzrdir.py 2008-01-17 13:45:16 +0000
+++ b/bzrlib/bzrdir.py 2008-02-04 03:50:39 +0000
@@ -748,7 +748,7 @@
def _get_tree_branch(self):
"""Return the branch and tree, if any, for this bzrdir.
- Return None for tree if not present.
+ Return None for tree if not present or inaccessible.
Raise NotBranchError if no branch is present.
:return: (tree, branch)
"""
=== modified file 'bzrlib/remote.py'
--- a/bzrlib/remote.py 2008-01-29 03:22:52 +0000
+++ b/bzrlib/remote.py 2008-02-04 03:50:39 +0000
@@ -130,6 +130,10 @@
else:
raise errors.UnexpectedSmartServerResponse(response)
+ def _get_tree_branch(self):
+ """See BzrDir._get_tree_branch()."""
+ return None, self.open_branch()
+
def open_branch(self, _unsupported=False):
assert _unsupported == False, 'unsupported flag support not implemented yet.'
reference_url = self.get_branch_reference()
=== modified file 'bzrlib/tests/test_remote.py'
--- a/bzrlib/tests/test_remote.py 2008-01-22 00:27:42 +0000
+++ b/bzrlib/tests/test_remote.py 2008-02-04 03:50:39 +0000
@@ -206,6 +206,23 @@
[('call', 'BzrDir.open_branch', ('quack/',))],
client._calls)
+ def test__get_tree_branch(self):
+ # _get_tree_branch is a form of open_branch, but it should only ask for
+ # branch opening, not any other network requests.
+ calls = []
+ def open_branch():
+ calls.append("Called")
+ return "a-branch"
+ transport = MemoryTransport()
+ # no requests on the network - catches other api calls being made.
+ client = FakeClient([], transport.base)
+ bzrdir = RemoteBzrDir(transport, _client=client)
+ # patch the open_branch call to record that it was called.
+ bzrdir.open_branch = open_branch
+ self.assertEqual((None, "a-branch"), bzrdir._get_tree_branch())
+ self.assertEqual(["Called"], calls)
+ self.assertEqual([], client._calls)
+
def test_url_quoting_of_path(self):
# Relpaths on the wire should not be URL-escaped. So "~" should be
# transmitted as "~", not "%7E".
More information about the bazaar-commits
mailing list