/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/remote.py

  • Committer: Robert Collins
  • Date: 2010-05-11 08:36:16 UTC
  • mto: This revision was merged to the branch mainline in revision 5223.
  • Revision ID: robertc@robertcollins.net-20100511083616-b8fjb19zomwupid0
Make all lock methods return Result objects, rather than lock_read returning self, as per John's review.

Show diffs side-by-side

added added

removed removed

Lines of Context:
273
273
    def create_workingtree(self, revision_id=None, from_branch=None):
274
274
        raise errors.NotLocalUrl(self.transport.base)
275
275
 
276
 
    def find_branch_format(self, name=None):
 
276
    def find_branch_format(self):
277
277
        """Find the branch 'format' for this bzrdir.
278
278
 
279
279
        This might be a synthetic object for e.g. RemoteBranch and SVN.
280
280
        """
281
 
        b = self.open_branch(name=name)
 
281
        b = self.open_branch()
282
282
        return b._format
283
283
 
284
 
    def get_branch_reference(self, name=None):
 
284
    def get_branch_reference(self):
285
285
        """See BzrDir.get_branch_reference()."""
286
 
        if name is not None:
287
 
            # XXX JRV20100304: Support opening colocated branches
288
 
            raise errors.NoColocatedBranchSupport(self)
289
286
        response = self._get_branch_reference()
290
287
        if response[0] == 'ref':
291
288
            return response[1]
322
319
            raise errors.UnexpectedSmartServerResponse(response)
323
320
        return response
324
321
 
325
 
    def _get_tree_branch(self, name=None):
 
322
    def _get_tree_branch(self):
326
323
        """See BzrDir._get_tree_branch()."""
327
 
        return None, self.open_branch(name=name)
 
324
        return None, self.open_branch()
328
325
 
329
326
    def open_branch(self, name=None, unsupported=False,
330
327
                    ignore_fallbacks=False):
899
896
    def _has_same_fallbacks(self, other_repo):
900
897
        """Returns true if the repositories have the same fallbacks."""
901
898
        # XXX: copied from Repository; it should be unified into a base class
902
 
        # <https://bugs.launchpad.net/bzr/+bug/401622>
 
899
        # <https://bugs.edge.launchpad.net/bzr/+bug/401622>
903
900
        my_fb = self._fallback_repositories
904
901
        other_fb = other_repo._fallback_repositories
905
902
        if len(my_fb) != len(other_fb):
1315
1312
        return self._real_repository.make_working_trees()
1316
1313
 
1317
1314
    def refresh_data(self):
1318
 
        """Re-read any data needed to synchronise with disk.
 
1315
        """Re-read any data needed to to synchronise with disk.
1319
1316
 
1320
1317
        This method is intended to be called after another repository instance
1321
1318
        (such as one used by a smart server) has inserted data into the
1322
 
        repository. On all repositories this will work outside of write groups.
1323
 
        Some repository formats (pack and newer for bzrlib native formats)
1324
 
        support refresh_data inside write groups. If called inside a write
1325
 
        group on a repository that does not support refreshing in a write group
1326
 
        IsInWriteGroupError will be raised.
 
1319
        repository. It may not be called during a write group, but may be
 
1320
        called at any other time.
1327
1321
        """
 
1322
        if self.is_in_write_group():
 
1323
            raise errors.InternalBzrError(
 
1324
                "May not refresh_data while in a write group.")
1328
1325
        if self._real_repository is not None:
1329
1326
            self._real_repository.refresh_data()
1330
1327
 
1980
1977
        if response_tuple[0] != 'ok':
1981
1978
            raise errors.UnexpectedSmartServerResponse(response_tuple)
1982
1979
        byte_stream = response_handler.read_streamed_body()
1983
 
        src_format, stream = smart_repo._byte_stream_to_stream(byte_stream,
1984
 
            self._record_counter)
 
1980
        src_format, stream = smart_repo._byte_stream_to_stream(byte_stream)
1985
1981
        if src_format.network_name() != repo._format.network_name():
1986
1982
            raise AssertionError(
1987
1983
                "Mismatched RemoteRepository and stream src %r, %r" % (
2449
2445
            self._lock_mode = 'w'
2450
2446
            self._lock_count = 1
2451
2447
        elif self._lock_mode == 'r':
2452
 
            raise errors.ReadOnlyError(self)
 
2448
            raise errors.ReadOnlyTransaction
2453
2449
        else:
2454
2450
            if token is not None:
2455
2451
                # A token was given to lock_write, and we're relocking, so
2789
2785
        medium = self._branch._client._medium
2790
2786
        if medium._is_remote_before((1, 14)):
2791
2787
            return self._vfs_set_option(value, name, section)
2792
 
        if isinstance(value, dict):
2793
 
            if medium._is_remote_before((2, 2)):
2794
 
                return self._vfs_set_option(value, name, section)
2795
 
            return self._set_config_option_dict(value, name, section)
2796
 
        else:
2797
 
            return self._set_config_option(value, name, section)
2798
 
 
2799
 
    def _set_config_option(self, value, name, section):
2800
2788
        try:
2801
2789
            path = self._branch._remote_path()
2802
2790
            response = self._branch._client.call('Branch.set_config_option',
2803
2791
                path, self._branch._lock_token, self._branch._repo_lock_token,
2804
2792
                value.encode('utf8'), name, section or '')
2805
2793
        except errors.UnknownSmartMethod:
2806
 
            medium = self._branch._client._medium
2807
2794
            medium._remember_remote_is_before((1, 14))
2808
2795
            return self._vfs_set_option(value, name, section)
2809
2796
        if response != ():
2810
2797
            raise errors.UnexpectedSmartServerResponse(response)
2811
2798
 
2812
 
    def _serialize_option_dict(self, option_dict):
2813
 
        utf8_dict = {}
2814
 
        for key, value in option_dict.items():
2815
 
            if isinstance(key, unicode):
2816
 
                key = key.encode('utf8')
2817
 
            if isinstance(value, unicode):
2818
 
                value = value.encode('utf8')
2819
 
            utf8_dict[key] = value
2820
 
        return bencode.bencode(utf8_dict)
2821
 
 
2822
 
    def _set_config_option_dict(self, value, name, section):
2823
 
        try:
2824
 
            path = self._branch._remote_path()
2825
 
            serialised_dict = self._serialize_option_dict(value)
2826
 
            response = self._branch._client.call(
2827
 
                'Branch.set_config_option_dict',
2828
 
                path, self._branch._lock_token, self._branch._repo_lock_token,
2829
 
                serialised_dict, name, section or '')
2830
 
        except errors.UnknownSmartMethod:
2831
 
            medium = self._branch._client._medium
2832
 
            medium._remember_remote_is_before((2, 2))
2833
 
            return self._vfs_set_option(value, name, section)
2834
 
        if response != ():
2835
 
            raise errors.UnexpectedSmartServerResponse(response)
2836
 
 
2837
2799
    def _real_object(self):
2838
2800
        self._branch._ensure_real()
2839
2801
        return self._branch._real_branch