1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
# -*- coding: UTF-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
__copyright__ = "Copyright (C) 2005 Canonical Ltd."
__author__ = "Martin Pool <mbp@canonical.com>"
######################################################################
# exceptions
class BzrError(StandardError):
def __str__(self):
if len(self.args) == 1:
return self.args[0]
elif len(self.args) == 2:
# further explanation or suggestions
return '\n '.join([self.args[0]] + self.args[1])
else:
return `self.args`
class BzrCheckError(BzrError):
pass
class InvalidRevisionNumber(BzrError):
def __str__(self):
return 'invalid revision number: %r' % self.args[0]
class InvalidRevisionId(BzrError):
pass
class BzrCommandError(BzrError):
# Error from malformed user command
pass
class NotBranchError(BzrError):
"""Specified path is not in a branch"""
pass
class NotVersionedError(BzrError):
"""Specified object is not versioned."""
class BadFileKindError(BzrError):
"""Specified file is of a kind that cannot be added.
(For example a symlink or device file.)"""
pass
class ForbiddenFileError(BzrError):
"""Cannot operate on a file because it is a control file."""
pass
class LockError(Exception):
"""All exceptions from the lock/unlock functions should be from
this exception class. They will be translated as necessary. The
original exception is available as e.original_error
"""
def __init__(self, e=None):
self.original_error = e
if e:
Exception.__init__(self, e)
else:
Exception.__init__(self)
class PointlessCommit(Exception):
"""Commit failed because nothing was changed."""
class NoSuchRevision(BzrError):
def __init__(self, branch, revision):
self.branch = branch
self.revision = revision
msg = "Branch %s has no revision %s" % (branch, revision)
BzrError.__init__(self, msg)
class HistoryMissing(BzrError):
def __init__(self, branch, object_type, object_id):
self.branch = branch
BzrError.__init__(self,
'%s is missing %s {%s}'
% (branch, object_type, object_id))
class DivergedBranches(BzrError):
def __init__(self, branch1, branch2):
BzrError.__init__(self, "These branches have diverged.")
self.branch1 = branch1
self.branch2 = branch2
class UnrelatedBranches(BzrCommandError):
def __init__(self):
msg = "Branches have no common ancestor, and no base revision"\
" specified."
BzrCommandError.__init__(self, msg)
class NoCommonAncestor(BzrError):
def __init__(self, revision_a, revision_b):
msg = "Revisions have no common ancestor: %s %s." \
% (revision_a, revision_b)
BzrError.__init__(self, msg)
class NoCommonRoot(BzrError):
def __init__(self, revision_a, revision_b):
msg = "Revisions are not derived from the same root: %s %s." \
% (revision_a, revision_b)
BzrError.__init__(self, msg)
class NotAncestor(BzrError):
def __init__(self, rev_id, not_ancestor_id):
msg = "Revision %s is not an ancestor of %s" % (not_ancestor_id,
rev_id)
BzrError.__init__(self, msg)
self.rev_id = rev_id
self.not_ancestor_id = not_ancestor_id
class InstallFailed(BzrError):
def __init__(self, revisions):
msg = "Could not install revisions:\n%s" % " ,".join(revisions)
BzrError.__init__(self, msg)
self.revisions = revisions
class AmbiguousBase(BzrError):
def __init__(self, bases):
msg = "The correct base is unclear, becase %s are all equally close" %\
", ".join(bases)
BzrError.__init__(self, msg)
self.bases = bases
class NoCommits(BzrError):
def __init__(self, branch):
msg = "Branch %s has no commits." % branch
BzrError.__init__(self, msg)
|