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