Rev 6269: (jelmer) Add HPSS call ``Repository.make_working_trees``. (Jelmer Vernooij) in file:///srv/pqm.bazaar-vcs.org/archives/thelove/bzr/%2Btrunk/
Patch Queue Manager
pqm at pqm.ubuntu.com
Thu Nov 17 12:59:55 UTC 2011
At file:///srv/pqm.bazaar-vcs.org/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 6269 [merge]
revision-id: pqm at pqm.ubuntu.com-20111117125955-yjbz106l8gkzslos
parent: pqm at pqm.ubuntu.com-20111117120949-9f5ayowxv6avzu8p
parent: jelmer at samba.org-20111117115019-8dhufkone8kyh233
committer: Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Thu 2011-11-17 12:59:55 +0000
message:
(jelmer) Add HPSS call ``Repository.make_working_trees``. (Jelmer Vernooij)
modified:
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/smart/repository.py repository.py-20061128022038-vr5wy5bubyb8xttk-1
bzrlib/smart/request.py request.py-20061108095550-gunadhxmzkdjfeek-1
bzrlib/tests/blackbox/test_shared_repository.py test_shared_repository.py-20060317053531-ed30c0d79325e483
bzrlib/tests/test_remote.py test_remote.py-20060720103555-yeeg2x51vn0rbtdp-2
bzrlib/tests/test_smart.py test_smart.py-20061122024551-ol0l0o0oofsu9b3t-2
doc/en/release-notes/bzr-2.5.txt bzr2.5.txt-20110708125756-587p0hpw7oke4h05-1
=== modified file 'bzrlib/remote.py'
--- a/bzrlib/remote.py 2011-11-15 15:27:38 +0000
+++ b/bzrlib/remote.py 2011-11-16 13:33:11 +0000
@@ -1589,8 +1589,15 @@
def make_working_trees(self):
"""See Repository.make_working_trees"""
- self._ensure_real()
- return self._real_repository.make_working_trees()
+ path = self.bzrdir._path_for_remote_call(self._client)
+ try:
+ response = self._call('Repository.make_working_trees', path)
+ except errors.UnknownSmartMethod:
+ self._ensure_real()
+ return self._real_repository.make_working_trees()
+ if response[0] not in ('yes', 'no'):
+ raise SmartProtocolError('unexpected response code %s' % (response,))
+ return response[0] == 'yes'
def refresh_data(self):
"""Re-read any data needed to synchronise with disk.
=== modified file 'bzrlib/smart/repository.py'
--- a/bzrlib/smart/repository.py 2011-09-12 18:40:02 +0000
+++ b/bzrlib/smart/repository.py 2011-11-17 09:51:07 +0000
@@ -400,6 +400,23 @@
return SuccessfulSmartServerResponse(('no', ))
+class SmartServerRepositoryMakeWorkingTrees(SmartServerRepositoryRequest):
+
+ def do_repository_request(self, repository):
+ """Return the result of repository.make_working_trees().
+
+ Introduced in bzr 2.5.0.
+
+ :param repository: The repository to query in.
+ :return: A smart server response of ('yes', ) if the repository uses
+ working trees, and ('no', ) if it is not.
+ """
+ if repository.make_working_trees():
+ return SuccessfulSmartServerResponse(('yes', ))
+ else:
+ return SuccessfulSmartServerResponse(('no', ))
+
+
class SmartServerRepositoryLockWrite(SmartServerRepositoryRequest):
def do_repository_request(self, repository, token=''):
=== modified file 'bzrlib/smart/request.py'
--- a/bzrlib/smart/request.py 2011-05-19 09:32:38 +0000
+++ b/bzrlib/smart/request.py 2011-11-16 13:33:11 +0000
@@ -623,6 +623,8 @@
request_handlers.register_lazy(
'Repository.lock_write', 'bzrlib.smart.repository', 'SmartServerRepositoryLockWrite')
request_handlers.register_lazy(
+ 'Repository.make_working_trees', 'bzrlib.smart.repository', 'SmartServerRepositoryMakeWorkingTrees')
+request_handlers.register_lazy(
'Repository.set_make_working_trees', 'bzrlib.smart.repository',
'SmartServerRepositorySetMakeWorkingTrees')
request_handlers.register_lazy(
=== modified file 'bzrlib/tests/blackbox/test_shared_repository.py'
--- a/bzrlib/tests/blackbox/test_shared_repository.py 2011-11-16 00:55:10 +0000
+++ b/bzrlib/tests/blackbox/test_shared_repository.py 2011-11-17 11:50:19 +0000
@@ -18,7 +18,6 @@
import os
-from bzrlib import osutils
from bzrlib.bzrdir import BzrDir, BzrDirMetaFormat1
import bzrlib.errors as errors
from bzrlib.tests import TestCaseInTempDir
@@ -120,7 +119,7 @@
# 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(17, self.hpss_calls)
+ self.assertLength(13, self.hpss_calls)
def test_notification_on_branch_from_repository(self):
out, err = self.run_bzr("init-repository -q a")
=== modified file 'bzrlib/tests/test_remote.py'
--- a/bzrlib/tests/test_remote.py 2011-09-25 23:58:12 +0000
+++ b/bzrlib/tests/test_remote.py 2011-11-16 13:33:11 +0000
@@ -2504,6 +2504,31 @@
self.assertEqual(False, result)
+class TestRepositoryMakeWorkingTrees(TestRemoteRepository):
+
+ def test_make_working_trees(self):
+ # ('yes', ) for Repository.make_working_trees -> 'True'.
+ transport_path = 'quack'
+ repo, client = self.setup_fake_client_and_repository(transport_path)
+ client.add_success_response('yes')
+ result = repo.make_working_trees()
+ self.assertEqual(
+ [('call', 'Repository.make_working_trees', ('quack/',))],
+ client._calls)
+ self.assertEqual(True, result)
+
+ def test_no_working_trees(self):
+ # ('no', ) for Repository.make_working_trees -> 'False'.
+ transport_path = 'qwack'
+ repo, client = self.setup_fake_client_and_repository(transport_path)
+ client.add_success_response('no')
+ result = repo.make_working_trees()
+ self.assertEqual(
+ [('call', 'Repository.make_working_trees', ('qwack/',))],
+ client._calls)
+ self.assertEqual(False, result)
+
+
class TestRepositoryLockWrite(TestRemoteRepository):
def test_lock_write(self):
=== modified file 'bzrlib/tests/test_smart.py'
--- a/bzrlib/tests/test_smart.py 2011-09-16 20:42:31 +0000
+++ b/bzrlib/tests/test_smart.py 2011-11-16 13:33:11 +0000
@@ -1627,6 +1627,28 @@
request.execute('', ))
+class TestSmartServerRepositoryMakeWorkingTrees(
+ tests.TestCaseWithMemoryTransport):
+
+ def test_make_working_trees(self):
+ """For a repository with working trees, ('yes', ) is returned."""
+ backing = self.get_transport()
+ request = smart_repo.SmartServerRepositoryMakeWorkingTrees(backing)
+ r = self.make_repository('.')
+ r.set_make_working_trees(True)
+ self.assertEqual(smart_req.SmartServerResponse(('yes', )),
+ request.execute('', ))
+
+ def test_is_not_shared(self):
+ """For a repository with working trees, ('no', ) is returned."""
+ backing = self.get_transport()
+ request = smart_repo.SmartServerRepositoryMakeWorkingTrees(backing)
+ r = self.make_repository('.')
+ r.set_make_working_trees(False)
+ self.assertEqual(smart_req.SmartServerResponse(('no', )),
+ request.execute('', ))
+
+
class TestSmartServerRepositoryLockWrite(tests.TestCaseWithMemoryTransport):
def test_lock_write_on_unlocked_repo(self):
@@ -1934,6 +1956,8 @@
smart_repo.SmartServerRepositoryIsShared)
self.assertHandlerEqual('Repository.lock_write',
smart_repo.SmartServerRepositoryLockWrite)
+ self.assertHandlerEqual('Repository.make_working_trees',
+ smart_repo.SmartServerRepositoryMakeWorkingTrees)
self.assertHandlerEqual('Repository.tarball',
smart_repo.SmartServerRepositoryTarball)
self.assertHandlerEqual('Repository.unlock',
=== modified file 'doc/en/release-notes/bzr-2.5.txt'
--- a/doc/en/release-notes/bzr-2.5.txt 2011-11-17 12:09:49 +0000
+++ b/doc/en/release-notes/bzr-2.5.txt 2011-11-17 12:59:55 +0000
@@ -64,6 +64,9 @@
.. Major internal changes, unlikely to be visible to users or plugin
developers, but interesting for bzr developers.
+* Add hpss call ``Repository.make_working_trees``.
+ (Jelmer Vernooij)
+
Testing
*******
More information about the bazaar-commits
mailing list