/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-27 21:16:48 UTC
  • mto: This revision was merged to the branch mainline in revision 5266.
  • Revision ID: robertc@robertcollins.net-20100527211648-1mj8m4dh0ricku21
Final fix for 'no help for command' issue. We now show a clean message
when a command has no help, document how to set help more clearly, and
test that all commands available to the test suite have help.
(Robert Collins, #177500)

Show diffs side-by-side

added added

removed removed

Lines of Context:
899
899
    def _has_same_fallbacks(self, other_repo):
900
900
        """Returns true if the repositories have the same fallbacks."""
901
901
        # XXX: copied from Repository; it should be unified into a base class
902
 
        # <https://bugs.edge.launchpad.net/bzr/+bug/401622>
 
902
        # <https://bugs.launchpad.net/bzr/+bug/401622>
903
903
        my_fb = self._fallback_repositories
904
904
        other_fb = other_repo._fallback_repositories
905
905
        if len(my_fb) != len(other_fb):
1980
1980
        if response_tuple[0] != 'ok':
1981
1981
            raise errors.UnexpectedSmartServerResponse(response_tuple)
1982
1982
        byte_stream = response_handler.read_streamed_body()
1983
 
        src_format, stream = smart_repo._byte_stream_to_stream(byte_stream)
 
1983
        src_format, stream = smart_repo._byte_stream_to_stream(byte_stream,
 
1984
            self._record_counter)
1984
1985
        if src_format.network_name() != repo._format.network_name():
1985
1986
            raise AssertionError(
1986
1987
                "Mismatched RemoteRepository and stream src %r, %r" % (
2448
2449
            self._lock_mode = 'w'
2449
2450
            self._lock_count = 1
2450
2451
        elif self._lock_mode == 'r':
2451
 
            raise errors.ReadOnlyTransaction
 
2452
            raise errors.ReadOnlyError(self)
2452
2453
        else:
2453
2454
            if token is not None:
2454
2455
                # A token was given to lock_write, and we're relocking, so
2788
2789
        medium = self._branch._client._medium
2789
2790
        if medium._is_remote_before((1, 14)):
2790
2791
            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):
2791
2800
        try:
2792
2801
            path = self._branch._remote_path()
2793
2802
            response = self._branch._client.call('Branch.set_config_option',
2794
2803
                path, self._branch._lock_token, self._branch._repo_lock_token,
2795
2804
                value.encode('utf8'), name, section or '')
2796
2805
        except errors.UnknownSmartMethod:
 
2806
            medium = self._branch._client._medium
2797
2807
            medium._remember_remote_is_before((1, 14))
2798
2808
            return self._vfs_set_option(value, name, section)
2799
2809
        if response != ():
2800
2810
            raise errors.UnexpectedSmartServerResponse(response)
2801
2811
 
 
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
 
2802
2837
    def _real_object(self):
2803
2838
        self._branch._ensure_real()
2804
2839
        return self._branch._real_branch