723
726
self.bzrdir.open_repository()
724
727
except NoRepositoryPresent:
730
# Just ignore unexpected errors. Raising arbitrary errors
731
# during str(err) can provoke strange bugs. Concretely
732
# Launchpad's codehosting managed to raise NotBranchError
733
# here, and then get stuck in an infinite loop/recursion
734
# trying to str() that error. All this error really cares
735
# about that there's no working repository there, and if
736
# open_repository() fails, there probably isn't.
727
739
self.detail = ': location is a repository'
947
961
# original exception is available as e.original_error
949
963
# New code should prefer to raise specific subclasses
950
def __init__(self, message):
951
# Python 2.5 uses a slot for StandardError.message,
952
# so use a different variable name. We now work around this in
953
# BzrError.__str__, but this member name is kept for compatability.
964
def __init__(self, msg):
957
968
class LockActive(LockError):
1075
1084
self.target = target
1087
class LockCorrupt(LockError):
1089
_fmt = ("Lock is apparently held, but corrupted: %(corruption_info)s\n"
1090
"Use 'bzr break-lock' to clear it")
1092
internal_error = False
1094
def __init__(self, corruption_info, file_data=None):
1095
self.corruption_info = corruption_info
1096
self.file_data = file_data
1078
1099
class LockNotHeld(LockError):
1080
1101
_fmt = "Lock not held: %(lock)s"
1180
1201
class InvalidRevisionSpec(BzrError):
1182
1203
_fmt = ("Requested revision: '%(spec)s' does not exist in branch:"
1183
" %(branch)s%(extra)s")
1204
" %(branch_url)s%(extra)s")
1185
1206
def __init__(self, spec, branch, extra=None):
1186
1207
BzrError.__init__(self, branch=branch, spec=spec)
1208
self.branch_url = getattr(branch, 'user_url', str(branch))
1188
1210
self.extra = '\n' + str(extra)
1339
1361
self.error = error
1342
class WeaveError(BzrError):
1344
_fmt = "Error in processing weave: %(msg)s"
1346
def __init__(self, msg=None):
1347
BzrError.__init__(self)
1351
class WeaveRevisionAlreadyPresent(WeaveError):
1353
_fmt = "Revision {%(revision_id)s} already present in %(weave)s"
1355
def __init__(self, revision_id, weave):
1357
WeaveError.__init__(self)
1358
self.revision_id = revision_id
1362
class WeaveRevisionNotPresent(WeaveError):
1364
_fmt = "Revision {%(revision_id)s} not present in %(weave)s"
1366
def __init__(self, revision_id, weave):
1367
WeaveError.__init__(self)
1368
self.revision_id = revision_id
1372
class WeaveFormatError(WeaveError):
1374
_fmt = "Weave invariant violated: %(what)s"
1376
def __init__(self, what):
1377
WeaveError.__init__(self)
1381
class WeaveParentMismatch(WeaveError):
1383
_fmt = "Parents are mismatched between two revisions. %(message)s"
1386
class WeaveInvalidChecksum(WeaveError):
1388
_fmt = "Text did not match it's checksum: %(message)s"
1391
class WeaveTextDiffers(WeaveError):
1393
_fmt = ("Weaves differ on text content. Revision:"
1394
" {%(revision_id)s}, %(weave_a)s, %(weave_b)s")
1396
def __init__(self, revision_id, weave_a, weave_b):
1397
WeaveError.__init__(self)
1398
self.revision_id = revision_id
1399
self.weave_a = weave_a
1400
self.weave_b = weave_b
1403
class WeaveTextDiffers(WeaveError):
1405
_fmt = ("Weaves differ on text content. Revision:"
1406
" {%(revision_id)s}, %(weave_a)s, %(weave_b)s")
1408
def __init__(self, revision_id, weave_a, weave_b):
1409
WeaveError.__init__(self)
1410
self.revision_id = revision_id
1411
self.weave_a = weave_a
1412
self.weave_b = weave_b
1415
1364
class VersionedFileError(BzrError):
1417
1366
_fmt = "Versioned file error"
1369
class ParentMismatch(VersionedFileError):
1371
_fmt = "Parents are mismatched between two revisions. %(name)s has %(p1)s vs %(p2)s"
1373
def __init__(self, name, p1, p2):
1420
1379
class RevisionNotPresent(VersionedFileError):
1422
1381
_fmt = 'Revision {%(revision_id)s} not present in "%(file_id)s".'
1925
1884
_fmt = "Moving the root directory is not supported at this time"
1887
class TransformRenameFailed(BzrError):
1889
_fmt = "Failed to rename %(from_path)s to %(to_path)s: %(why)s"
1891
def __init__(self, from_path, to_path, why, errno):
1892
self.from_path = from_path
1893
self.to_path = to_path
1928
1898
class BzrMoveFailedError(BzrError):
1930
1900
_fmt = "Could not move %(from_path)s%(operator)s %(to_path)s%(extra)s"
1975
1945
"Use --keep to not delete them, or --force to delete them regardless.")
1977
1947
def __init__(self, tree_delta):
1948
symbol_versioning.warn(symbol_versioning.deprecated_in((2, 3, 0)) %
1949
"BzrRemoveChangedFilesError", DeprecationWarning, stacklevel=2)
1978
1950
BzrError.__init__(self)
1979
1951
self.changes_as_text = tree_delta.get_changes_as_text()
1980
1952
#self.paths_as_string = '\n'.join(changed_files)
2835
2807
more = ' ' + more
2836
2808
import bzrlib.urlutils as urlutils
2837
display_url = urlutils.unescape_for_display(
2838
tree.user_url, 'ascii')
2809
user_url = getattr(tree, "user_url", None)
2810
if user_url is None:
2811
display_url = str(tree)
2813
display_url = urlutils.unescape_for_display(user_url, 'ascii')
2839
2814
BzrError.__init__(self, tree=tree, display_url=display_url, more=more)
2817
class ShelvedChanges(UncommittedChanges):
2819
_fmt = ('Working tree "%(display_url)s" has shelved changes'
2820
' (See bzr shelve --list).%(more)s')
2842
2823
class MissingTemplateVariable(BzrError):
2844
2825
_fmt = 'Variable {%(name)s} is not available.'
2913
2894
self.user_encoding = osutils.get_user_encoding()
2897
class NoSuchConfig(BzrError):
2899
_fmt = ('The "%(config_id)s" configuration does not exist.')
2901
def __init__(self, config_id):
2902
BzrError.__init__(self, config_id=config_id)
2905
class NoSuchConfigOption(BzrError):
2907
_fmt = ('The "%(option_name)s" configuration option does not exist.')
2909
def __init__(self, option_name):
2910
BzrError.__init__(self, option_name=option_name)
2916
2913
class NoSuchAlias(BzrError):
2918
2915
_fmt = ('The alias "%(alias_name)s" does not exist.')
3134
3131
def __init__(self, bzrdir):
3135
3132
self.bzrdir = bzrdir
3135
class NoWhoami(BzrError):
3137
_fmt = ('Unable to determine your name.\n'
3138
"Please, set your name with the 'whoami' command.\n"
3139
'E.g. bzr whoami "Your Name <name@example.com>"')
3142
class InvalidPattern(BzrError):
3144
_fmt = ('Invalid pattern(s) found. %(msg)s')
3146
def __init__(self, msg):
3150
class RecursiveBind(BzrError):
3152
_fmt = ('Branch "%(branch_url)s" appears to be bound to itself. '
3153
'Please use `bzr unbind` to fix.')
3155
def __init__(self, branch_url):
3156
self.branch_url = branch_url