287
284
def _get_branch_reference(self):
288
285
path = self._path_for_remote_call(self._client)
289
286
medium = self._client._medium
291
('BzrDir.open_branchV3', (2, 1)),
292
('BzrDir.open_branchV2', (1, 13)),
293
('BzrDir.open_branch', None),
295
for verb, required_version in candidate_calls:
296
if required_version and medium._is_remote_before(required_version):
287
if not medium._is_remote_before((1, 13)):
299
response = self._call(verb, path)
289
response = self._call('BzrDir.open_branchV2', path)
290
if response[0] not in ('ref', 'branch'):
291
raise errors.UnexpectedSmartServerResponse(response)
300
293
except errors.UnknownSmartMethod:
301
if required_version is None:
303
medium._remember_remote_is_before(required_version)
306
if verb == 'BzrDir.open_branch':
307
if response[0] != 'ok':
308
raise errors.UnexpectedSmartServerResponse(response)
309
if response[1] != '':
310
return ('ref', response[1])
312
return ('branch', '')
313
if response[0] not in ('ref', 'branch'):
294
medium._remember_remote_is_before((1, 13))
295
response = self._call('BzrDir.open_branch', path)
296
if response[0] != 'ok':
314
297
raise errors.UnexpectedSmartServerResponse(response)
298
if response[1] != '':
299
return ('ref', response[1])
301
return ('branch', '')
317
303
def _get_tree_branch(self):
318
304
"""See BzrDir._get_tree_branch()."""
615
601
return self._custom_format._fetch_reconcile
617
603
def get_format_description(self):
619
return 'Remote: ' + self._custom_format.get_format_description()
604
return 'bzr remote repository'
621
606
def __eq__(self, other):
622
607
return self.__class__ is other.__class__
965
950
def is_write_locked(self):
966
951
return self._lock_mode == 'w'
968
def _warn_if_deprecated(self, branch=None):
969
# If we have a real repository, the check will be done there, if we
970
# don't the check will be done remotely.
973
953
def lock_read(self):
974
954
# wrong eventually - want a local lock cache context
975
955
if not self._lock_mode:
1497
1477
return self._real_repository.get_signature_text(revision_id)
1499
1479
@needs_read_lock
1500
def _get_inventory_xml(self, revision_id):
1480
def get_inventory_xml(self, revision_id):
1501
1481
self._ensure_real()
1502
return self._real_repository._get_inventory_xml(revision_id)
1482
return self._real_repository.get_inventory_xml(revision_id)
1504
def _deserialise_inventory(self, revision_id, xml):
1484
def deserialise_inventory(self, revision_id, xml):
1505
1485
self._ensure_real()
1506
return self._real_repository._deserialise_inventory(revision_id, xml)
1486
return self._real_repository.deserialise_inventory(revision_id, xml)
1508
1488
def reconcile(self, other=None, thorough=False):
1509
1489
self._ensure_real()
2837
2816
raise NoSuchRevision(find('branch'), err.error_args[0])
2838
2817
elif err.error_verb == 'nosuchrevision':
2839
2818
raise NoSuchRevision(find('repository'), err.error_args[0])
2840
elif err.error_verb == 'nobranch':
2841
if len(err.error_args) >= 1:
2842
extra = err.error_args[0]
2845
raise errors.NotBranchError(path=find('bzrdir').root_transport.base,
2819
elif err.error_tuple == ('nobranch',):
2820
raise errors.NotBranchError(path=find('bzrdir').root_transport.base)
2847
2821
elif err.error_verb == 'norepository':
2848
2822
raise errors.NoRepositoryPresent(find('bzrdir'))
2849
2823
elif err.error_verb == 'LockContention':