~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/errors.py

  • Committer: John Arbash Meinel
  • Date: 2010-08-23 19:10:35 UTC
  • mto: This revision was merged to the branch mainline in revision 5390.
  • Revision ID: john@arbash-meinel.com-20100823191035-57bojnmqw54nutsz
switch 'x += 1' to 'x = x + 1' to deal with brain-damaged old versions of pyrex.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006, 2007, 2008 Canonical Ltd
 
1
# Copyright (C) 2005-2010 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)
782
782
 
783
783
    _fmt = 'File "%(path)s" is not in branch %(branch_base)s.'
784
784
 
 
785
    # use PathNotChild instead
 
786
    @symbol_versioning.deprecated_method(symbol_versioning.deprecated_in((2, 3, 0)))
785
787
    def __init__(self, branch, path):
786
788
        BzrError.__init__(self)
787
789
        self.branch = branch
947
949
    # original exception is available as e.original_error
948
950
    #
949
951
    # 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
 
952
    def __init__(self, msg):
 
953
        self.msg = msg
955
954
 
956
955
 
957
956
class LockActive(LockError):
1041
1040
class LockContention(LockError):
1042
1041
 
1043
1042
    _fmt = 'Could not acquire lock "%(lock)s": %(msg)s'
1044
 
    # TODO: show full url for lock, combining the transport and relative
1045
 
    # bits?
1046
1043
 
1047
1044
    internal_error = False
1048
1045
 
1179
1176
 
1180
1177
class InvalidRevisionSpec(BzrError):
1181
1178
 
1182
 
    _fmt = ("Requested revision: %(spec)r does not exist in branch:"
1183
 
            " %(branch)s%(extra)s")
 
1179
    _fmt = ("Requested revision: '%(spec)s' does not exist in branch:"
 
1180
            " %(branch_url)s%(extra)s")
1184
1181
 
1185
1182
    def __init__(self, spec, branch, extra=None):
1186
1183
        BzrError.__init__(self, branch=branch, spec=spec)
 
1184
        self.branch_url = getattr(branch, 'user_url', str(branch))
1187
1185
        if extra:
1188
1186
            self.extra = '\n' + str(extra)
1189
1187
        else:
1297
1295
class BoundBranchOutOfDate(BzrError):
1298
1296
 
1299
1297
    _fmt = ("Bound branch %(branch)s is out of date with master branch"
1300
 
            " %(master)s.")
 
1298
            " %(master)s.%(extra_help)s")
1301
1299
 
1302
1300
    def __init__(self, branch, master):
1303
1301
        BzrError.__init__(self)
1304
1302
        self.branch = branch
1305
1303
        self.master = master
 
1304
        self.extra_help = ''
1306
1305
 
1307
1306
 
1308
1307
class CommitToDoubleBoundBranch(BzrError):
1379
1378
 
1380
1379
class WeaveParentMismatch(WeaveError):
1381
1380
 
1382
 
    _fmt = "Parents are mismatched between two revisions. %(message)s"
 
1381
    _fmt = "Parents are mismatched between two revisions. %(msg)s"
1383
1382
 
1384
1383
 
1385
1384
class WeaveInvalidChecksum(WeaveError):
1386
1385
 
1387
 
    _fmt = "Text did not match it's checksum: %(message)s"
 
1386
    _fmt = "Text did not match it's checksum: %(msg)s"
1388
1387
 
1389
1388
 
1390
1389
class WeaveTextDiffers(WeaveError):
1438
1437
 
1439
1438
class VersionedFileInvalidChecksum(VersionedFileError):
1440
1439
 
1441
 
    _fmt = "Text did not match its checksum: %(message)s"
 
1440
    _fmt = "Text did not match its checksum: %(msg)s"
1442
1441
 
1443
1442
 
1444
1443
class KnitError(InternalBzrError):
1924
1923
    _fmt = "Moving the root directory is not supported at this time"
1925
1924
 
1926
1925
 
 
1926
class TransformRenameFailed(BzrError):
 
1927
 
 
1928
    _fmt = "Failed to rename %(from_path)s to %(to_path)s: %(why)s"
 
1929
 
 
1930
    def __init__(self, from_path, to_path, why, errno):
 
1931
        self.from_path = from_path
 
1932
        self.to_path = to_path
 
1933
        self.why = why
 
1934
        self.errno = errno
 
1935
 
 
1936
 
1927
1937
class BzrMoveFailedError(BzrError):
1928
1938
 
1929
1939
    _fmt = "Could not move %(from_path)s%(operator)s %(to_path)s%(extra)s"
1974
1984
        "Use --keep to not delete them, or --force to delete them regardless.")
1975
1985
 
1976
1986
    def __init__(self, tree_delta):
 
1987
        symbol_versioning.warn(symbol_versioning.deprecated_in((2, 3, 0)) %
 
1988
            "BzrRemoveChangedFilesError", DeprecationWarning, stacklevel=2)
1977
1989
        BzrError.__init__(self)
1978
1990
        self.changes_as_text = tree_delta.get_changes_as_text()
1979
1991
        #self.paths_as_string = '\n'.join(changed_files)
2175
2187
 
2176
2188
    def __init__(self, repo):
2177
2189
        BzrError.__init__(self)
2178
 
        self.repo_path = repo.bzrdir.root_transport.base
 
2190
        self.repo_path = repo.user_url
2179
2191
 
2180
2192
 
2181
2193
class InconsistentDelta(BzrError):
2753
2765
 
2754
2766
    def __init__(self, bzrdir):
2755
2767
        import bzrlib.urlutils as urlutils
2756
 
        display_url = urlutils.unescape_for_display(bzrdir.root_transport.base,
 
2768
        display_url = urlutils.unescape_for_display(bzrdir.user_url,
2757
2769
                                                    'ascii')
2758
2770
        BzrError.__init__(self, bzrdir=bzrdir, display_url=display_url)
2759
2771
 
2833
2845
        else:
2834
2846
            more = ' ' + more
2835
2847
        import bzrlib.urlutils as urlutils
2836
 
        display_url = urlutils.unescape_for_display(
2837
 
            tree.bzrdir.root_transport.base, 'ascii')
 
2848
        user_url = getattr(tree, "user_url", None)
 
2849
        if user_url is None:
 
2850
            display_url = str(tree)
 
2851
        else:
 
2852
            display_url = urlutils.unescape_for_display(user_url, 'ascii')
2838
2853
        BzrError.__init__(self, tree=tree, display_url=display_url, more=more)
2839
2854
 
2840
2855
 
 
2856
class ShelvedChanges(UncommittedChanges):
 
2857
 
 
2858
    _fmt = ('Working tree "%(display_url)s" has shelved changes'
 
2859
            ' (See bzr shelve --list).%(more)s')
 
2860
 
 
2861
 
2841
2862
class MissingTemplateVariable(BzrError):
2842
2863
 
2843
2864
    _fmt = 'Variable {%(name)s} is not available.'
3124
3145
 
3125
3146
    def __init__(self, path):
3126
3147
        self.path = path
 
3148
 
 
3149
 
 
3150
class NoColocatedBranchSupport(BzrError):
 
3151
 
 
3152
    _fmt = ("%(bzrdir)r does not support co-located branches.")
 
3153
 
 
3154
    def __init__(self, bzrdir):
 
3155
        self.bzrdir = bzrdir
 
3156
 
 
3157
 
 
3158
class NoWhoami(BzrError):
 
3159
 
 
3160
    _fmt = ('Unable to determine your name.\n'
 
3161
        "Please, set your name with the 'whoami' command.\n"
 
3162
        'E.g. bzr whoami "Your Name <name@example.com>"')
 
3163
 
 
3164
 
 
3165
class InvalidPattern(BzrError):
 
3166
 
 
3167
    _fmt = ('Invalid pattern(s) found. %(msg)s')
 
3168
 
 
3169
    def __init__(self, msg):
 
3170
        self.msg = msg
 
3171
 
 
3172
 
 
3173
class RecursiveBind(BzrError):
 
3174
 
 
3175
    _fmt = ('Branch "%(branch_url)s" appears to be bound to itself. '
 
3176
        'Please use `bzr unbind` to fix.')
 
3177
 
 
3178
    def __init__(self, branch_url):
 
3179
        self.branch_url = branch_url
 
3180