~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/remote.py

  • Committer: Vincent Ladeuil
  • Date: 2009-11-03 09:32:17 UTC
  • mto: (4784.1.1 integration)
  • mto: This revision was merged to the branch mainline in revision 4785.
  • Revision ID: v.ladeuil+lp@free.fr-20091103093217-sodpsi6fzb36vk9y
Hooks daughter classes should always call the base constructor

* bzrlib/tests/test_hooks.py:
(TestHookRegistry.test_items_are_reasonable_keys): Reproduce bug
#389648 and ensures we won't regress again.

* bzrlib/version_info_formats/format_rio.py:
(RioVersionInfoBuilderHooks.__init__): Call base constructor.

* bzrlib/info.py:
(InfoHooks.__init__): Call base constructor.

Show diffs side-by-side

added added

removed removed

Lines of Context:
154
154
        Used before calls to self._real_bzrdir.
155
155
        """
156
156
        if not self._real_bzrdir:
157
 
            if 'hpssvfs' in debug.debug_flags:
158
 
                import traceback
159
 
                warning('VFS BzrDir access triggered\n%s',
160
 
                    ''.join(traceback.format_stack()))
161
157
            self._real_bzrdir = BzrDir.open_from_transport(
162
158
                self.root_transport, _server_formats=False)
163
159
            self._format._network_name = \
284
280
    def _get_branch_reference(self):
285
281
        path = self._path_for_remote_call(self._client)
286
282
        medium = self._client._medium
287
 
        candidate_calls = [
288
 
            ('BzrDir.open_branchV3', (2, 1)),
289
 
            ('BzrDir.open_branchV2', (1, 13)),
290
 
            ('BzrDir.open_branch', None),
291
 
            ]
292
 
        for verb, required_version in candidate_calls:
293
 
            if required_version and medium._is_remote_before(required_version):
294
 
                continue
 
283
        if not medium._is_remote_before((1, 13)):
295
284
            try:
296
 
                response = self._call(verb, path)
 
285
                response = self._call('BzrDir.open_branchV2', path)
 
286
                if response[0] not in ('ref', 'branch'):
 
287
                    raise errors.UnexpectedSmartServerResponse(response)
 
288
                return response
297
289
            except errors.UnknownSmartMethod:
298
 
                if required_version is None:
299
 
                    raise
300
 
                medium._remember_remote_is_before(required_version)
301
 
            else:
302
 
                break
303
 
        if verb == 'BzrDir.open_branch':
304
 
            if response[0] != 'ok':
305
 
                raise errors.UnexpectedSmartServerResponse(response)
306
 
            if response[1] != '':
307
 
                return ('ref', response[1])
308
 
            else:
309
 
                return ('branch', '')
310
 
        if response[0] not in ('ref', 'branch'):
 
290
                medium._remember_remote_is_before((1, 13))
 
291
        response = self._call('BzrDir.open_branch', path)
 
292
        if response[0] != 'ok':
311
293
            raise errors.UnexpectedSmartServerResponse(response)
312
 
        return response
 
294
        if response[1] != '':
 
295
            return ('ref', response[1])
 
296
        else:
 
297
            return ('branch', '')
313
298
 
314
299
    def _get_tree_branch(self):
315
300
        """See BzrDir._get_tree_branch()."""
612
597
        return self._custom_format._fetch_reconcile
613
598
 
614
599
    def get_format_description(self):
615
 
        self._ensure_real()
616
 
        return 'Remote: ' + self._custom_format.get_format_description()
 
600
        return 'bzr remote repository'
617
601
 
618
602
    def __eq__(self, other):
619
603
        return self.__class__ is other.__class__
962
946
    def is_write_locked(self):
963
947
        return self._lock_mode == 'w'
964
948
 
965
 
    def _warn_if_deprecated(self, branch=None):
966
 
        # If we have a real repository, the check will be done there, if we
967
 
        # don't the check will be done remotely.
968
 
        pass
969
 
 
970
949
    def lock_read(self):
971
950
        # wrong eventually - want a local lock cache context
972
951
        if not self._lock_mode:
2016
1995
                self._network_name)
2017
1996
 
2018
1997
    def get_format_description(self):
2019
 
        self._ensure_real()
2020
 
        return 'Remote: ' + self._custom_format.get_format_description()
 
1998
        return 'Remote BZR Branch'
2021
1999
 
2022
2000
    def network_name(self):
2023
2001
        return self._network_name
2834
2812
        raise NoSuchRevision(find('branch'), err.error_args[0])
2835
2813
    elif err.error_verb == 'nosuchrevision':
2836
2814
        raise NoSuchRevision(find('repository'), err.error_args[0])
2837
 
    elif err.error_verb == 'nobranch':
2838
 
        if len(err.error_args) >= 1:
2839
 
            extra = err.error_args[0]
2840
 
        else:
2841
 
            extra = None
2842
 
        raise errors.NotBranchError(path=find('bzrdir').root_transport.base,
2843
 
            detail=extra)
 
2815
    elif err.error_tuple == ('nobranch',):
 
2816
        raise errors.NotBranchError(path=find('bzrdir').root_transport.base)
2844
2817
    elif err.error_verb == 'norepository':
2845
2818
        raise errors.NoRepositoryPresent(find('bzrdir'))
2846
2819
    elif err.error_verb == 'LockContention':