/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/errors.py

  • Committer: Jelmer Vernooij
  • Date: 2011-01-19 19:54:46 UTC
  • mto: (5582.10.33 weave-fmt-plugin)
  • mto: This revision was merged to the branch mainline in revision 5625.
  • Revision ID: jelmer@samba.org-20110119195446-tdfskt08571vafma
RemoveĀ unusedĀ import.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2010 Canonical Ltd
 
1
# Copyright (C) 2005-2011 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
680
680
 
681
681
    _fmt = 'Path "%(path)s" is not a child of path "%(base)s"%(extra)s'
682
682
 
683
 
    internal_error = True
 
683
    internal_error = False
684
684
 
685
685
    def __init__(self, path, base, extra=None):
686
686
        BzrError.__init__(self)
713
713
       self.bzrdir = bzrdir
714
714
       PathError.__init__(self, path=path)
715
715
 
 
716
    def __repr__(self):
 
717
        return '<%s %r>' % (self.__class__.__name__, self.__dict__)
 
718
 
716
719
    def _format(self):
717
720
        # XXX: Ideally self.detail would be a property, but Exceptions in
718
721
        # Python 2.4 have to be old-style classes so properties don't work.
723
726
                    self.bzrdir.open_repository()
724
727
                except NoRepositoryPresent:
725
728
                    self.detail = ''
 
729
                except Exception:
 
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.
 
737
                    self.detail = ''
726
738
                else:
727
739
                    self.detail = ': location is a repository'
728
740
            else:
782
794
 
783
795
    _fmt = 'File "%(path)s" is not in branch %(branch_base)s.'
784
796
 
 
797
    # use PathNotChild instead
 
798
    @symbol_versioning.deprecated_method(symbol_versioning.deprecated_in((2, 3, 0)))
785
799
    def __init__(self, branch, path):
786
800
        BzrError.__init__(self)
787
801
        self.branch = branch
947
961
    # original exception is available as e.original_error
948
962
    #
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.
954
 
        self.msg = message
 
964
    def __init__(self, msg):
 
965
        self.msg = msg
955
966
 
956
967
 
957
968
class LockActive(LockError):
1041
1052
class LockContention(LockError):
1042
1053
 
1043
1054
    _fmt = 'Could not acquire lock "%(lock)s": %(msg)s'
1044
 
    # TODO: show full url for lock, combining the transport and relative
1045
 
    # bits?
1046
1055
 
1047
1056
    internal_error = False
1048
1057
 
1075
1084
        self.target = target
1076
1085
 
1077
1086
 
 
1087
class LockCorrupt(LockError):
 
1088
 
 
1089
    _fmt = ("Lock is apparently held, but corrupted: %(corruption_info)s\n"
 
1090
            "Use 'bzr break-lock' to clear it")
 
1091
 
 
1092
    internal_error = False
 
1093
 
 
1094
    def __init__(self, corruption_info, file_data=None):
 
1095
        self.corruption_info = corruption_info
 
1096
        self.file_data = file_data
 
1097
 
 
1098
 
1078
1099
class LockNotHeld(LockError):
1079
1100
 
1080
1101
    _fmt = "Lock not held: %(lock)s"
1180
1201
class InvalidRevisionSpec(BzrError):
1181
1202
 
1182
1203
    _fmt = ("Requested revision: '%(spec)s' does not exist in branch:"
1183
 
            " %(branch)s%(extra)s")
 
1204
            " %(branch_url)s%(extra)s")
1184
1205
 
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))
1187
1209
        if extra:
1188
1210
            self.extra = '\n' + str(extra)
1189
1211
        else:
1339
1361
        self.error = error
1340
1362
 
1341
1363
 
1342
 
class WeaveError(BzrError):
1343
 
 
1344
 
    _fmt = "Error in processing weave: %(msg)s"
1345
 
 
1346
 
    def __init__(self, msg=None):
1347
 
        BzrError.__init__(self)
1348
 
        self.msg = msg
1349
 
 
1350
 
 
1351
 
class WeaveRevisionAlreadyPresent(WeaveError):
1352
 
 
1353
 
    _fmt = "Revision {%(revision_id)s} already present in %(weave)s"
1354
 
 
1355
 
    def __init__(self, revision_id, weave):
1356
 
 
1357
 
        WeaveError.__init__(self)
1358
 
        self.revision_id = revision_id
1359
 
        self.weave = weave
1360
 
 
1361
 
 
1362
 
class WeaveRevisionNotPresent(WeaveError):
1363
 
 
1364
 
    _fmt = "Revision {%(revision_id)s} not present in %(weave)s"
1365
 
 
1366
 
    def __init__(self, revision_id, weave):
1367
 
        WeaveError.__init__(self)
1368
 
        self.revision_id = revision_id
1369
 
        self.weave = weave
1370
 
 
1371
 
 
1372
 
class WeaveFormatError(WeaveError):
1373
 
 
1374
 
    _fmt = "Weave invariant violated: %(what)s"
1375
 
 
1376
 
    def __init__(self, what):
1377
 
        WeaveError.__init__(self)
1378
 
        self.what = what
1379
 
 
1380
 
 
1381
 
class WeaveParentMismatch(WeaveError):
1382
 
 
1383
 
    _fmt = "Parents are mismatched between two revisions. %(message)s"
1384
 
 
1385
 
 
1386
 
class WeaveInvalidChecksum(WeaveError):
1387
 
 
1388
 
    _fmt = "Text did not match it's checksum: %(message)s"
1389
 
 
1390
 
 
1391
 
class WeaveTextDiffers(WeaveError):
1392
 
 
1393
 
    _fmt = ("Weaves differ on text content. Revision:"
1394
 
            " {%(revision_id)s}, %(weave_a)s, %(weave_b)s")
1395
 
 
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
1401
 
 
1402
 
 
1403
 
class WeaveTextDiffers(WeaveError):
1404
 
 
1405
 
    _fmt = ("Weaves differ on text content. Revision:"
1406
 
            " {%(revision_id)s}, %(weave_a)s, %(weave_b)s")
1407
 
 
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
1413
 
 
1414
 
 
1415
1364
class VersionedFileError(BzrError):
1416
1365
 
1417
1366
    _fmt = "Versioned file error"
1418
1367
 
1419
1368
 
 
1369
class ParentMismatch(VersionedFileError):
 
1370
 
 
1371
    _fmt = "Parents are mismatched between two revisions. %(name)s has %(p1)s vs %(p2)s"
 
1372
 
 
1373
    def __init__(self, name, p1, p2):
 
1374
        self.name = name
 
1375
        self.p1 = p1
 
1376
        self.p2 = p2
 
1377
 
 
1378
 
1420
1379
class RevisionNotPresent(VersionedFileError):
1421
1380
 
1422
1381
    _fmt = 'Revision {%(revision_id)s} not present in "%(file_id)s".'
1439
1398
 
1440
1399
class VersionedFileInvalidChecksum(VersionedFileError):
1441
1400
 
1442
 
    _fmt = "Text did not match its checksum: %(message)s"
 
1401
    _fmt = "Text did not match its checksum: %(msg)s"
1443
1402
 
1444
1403
 
1445
1404
class KnitError(InternalBzrError):
1925
1884
    _fmt = "Moving the root directory is not supported at this time"
1926
1885
 
1927
1886
 
 
1887
class TransformRenameFailed(BzrError):
 
1888
 
 
1889
    _fmt = "Failed to rename %(from_path)s to %(to_path)s: %(why)s"
 
1890
 
 
1891
    def __init__(self, from_path, to_path, why, errno):
 
1892
        self.from_path = from_path
 
1893
        self.to_path = to_path
 
1894
        self.why = why
 
1895
        self.errno = errno
 
1896
 
 
1897
 
1928
1898
class BzrMoveFailedError(BzrError):
1929
1899
 
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.")
1976
1946
 
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)
2834
2806
        else:
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)
 
2812
        else:
 
2813
            display_url = urlutils.unescape_for_display(user_url, 'ascii')
2839
2814
        BzrError.__init__(self, tree=tree, display_url=display_url, more=more)
2840
2815
 
2841
2816
 
 
2817
class ShelvedChanges(UncommittedChanges):
 
2818
 
 
2819
    _fmt = ('Working tree "%(display_url)s" has shelved changes'
 
2820
            ' (See bzr shelve --list).%(more)s')
 
2821
 
 
2822
 
2842
2823
class MissingTemplateVariable(BzrError):
2843
2824
 
2844
2825
    _fmt = 'Variable {%(name)s} is not available.'
2913
2894
        self.user_encoding = osutils.get_user_encoding()
2914
2895
 
2915
2896
 
 
2897
class NoSuchConfig(BzrError):
 
2898
 
 
2899
    _fmt = ('The "%(config_id)s" configuration does not exist.')
 
2900
 
 
2901
    def __init__(self, config_id):
 
2902
        BzrError.__init__(self, config_id=config_id)
 
2903
 
 
2904
 
 
2905
class NoSuchConfigOption(BzrError):
 
2906
 
 
2907
    _fmt = ('The "%(option_name)s" configuration option does not exist.')
 
2908
 
 
2909
    def __init__(self, option_name):
 
2910
        BzrError.__init__(self, option_name=option_name)
 
2911
 
 
2912
 
2916
2913
class NoSuchAlias(BzrError):
2917
2914
 
2918
2915
    _fmt = ('The alias "%(alias_name)s" does not exist.')
3134
3131
    def __init__(self, bzrdir):
3135
3132
        self.bzrdir = bzrdir
3136
3133
 
 
3134
 
 
3135
class NoWhoami(BzrError):
 
3136
 
 
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>"')
 
3140
 
 
3141
 
 
3142
class InvalidPattern(BzrError):
 
3143
 
 
3144
    _fmt = ('Invalid pattern(s) found. %(msg)s')
 
3145
 
 
3146
    def __init__(self, msg):
 
3147
        self.msg = msg
 
3148
 
 
3149
 
 
3150
class RecursiveBind(BzrError):
 
3151
 
 
3152
    _fmt = ('Branch "%(branch_url)s" appears to be bound to itself. '
 
3153
        'Please use `bzr unbind` to fix.')
 
3154
 
 
3155
    def __init__(self, branch_url):
 
3156
        self.branch_url = branch_url
 
3157