bzr branch
http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
| 1185.16.103
by mbp at sourcefrog Fix up all calls to InvalidRevisionId() to specify parameters. | 1 | # (C) 2005 Canonical
 | 
| 1
by mbp at sourcefrog import from baz patch-364 | 2 | |
| 3 | # This program is free software; you can redistribute it and/or modify
 | |
| 4 | # it under the terms of the GNU General Public License as published by
 | |
| 5 | # the Free Software Foundation; either version 2 of the License, or
 | |
| 6 | # (at your option) any later version.
 | |
| 7 | ||
| 8 | # This program is distributed in the hope that it will be useful,
 | |
| 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| 11 | # GNU General Public License for more details.
 | |
| 12 | ||
| 13 | # You should have received a copy of the GNU General Public License
 | |
| 14 | # along with this program; if not, write to the Free Software
 | |
| 15 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | |
| 16 | ||
| 1185.16.61
by mbp at sourcefrog - start introducing hct error classes | 17 | """Exceptions for bzr, and reporting of them.
 | 
| 18 | ||
| 19 | Exceptions are caught at a high level to report errors to the user, and
 | |
| 20 | might also be caught inside the program.  Therefore it needs to be
 | |
| 21 | possible to convert them to a meaningful string, and also for them to be
 | |
| 22 | interrogated by the program.
 | |
| 23 | ||
| 24 | Exceptions are defined such that the arguments given to the constructor
 | |
| 25 | are stored in the object as properties of the same name.  When the
 | |
| 26 | object is printed as a string, the doc string of the class is used as
 | |
| 27 | a format string with the property dictionary available to it.
 | |
| 28 | ||
| 29 | This means that exceptions can used like this:
 | |
| 30 | ||
| 31 | >>> import sys
 | |
| 32 | >>> try:
 | |
| 33 | ...   raise NotBranchError(path='/foo/bar')
 | |
| 34 | ... except:
 | |
| 35 | ...   print sys.exc_type
 | |
| 36 | ...   print sys.exc_value
 | |
| 37 | ...   print sys.exc_value.path
 | |
| 38 | bzrlib.errors.NotBranchError
 | |
| 39 | Not a branch: /foo/bar
 | |
| 40 | /foo/bar
 | |
| 41 | ||
| 42 | Therefore:
 | |
| 43 | ||
| 44 |  * create a new exception class for any class of error that can be
 | |
| 45 |    usefully distinguished.
 | |
| 46 | ||
| 47 |  * the printable form of an exception is generated by the base class
 | |
| 48 |    __str__ method
 | |
| 49 | """
 | |
| 50 | ||
| 51 | # based on Scott James Remnant's hct error classes
 | |
| 52 | ||
| 1185.16.62
by mbp at sourcefrog - convert NotBranchError to new exception base | 53 | # TODO: is there any value in providing the .args field used by standard
 | 
| 54 | # python exceptions?   A list of values with no names seems less useful 
 | |
| 55 | # to me.
 | |
| 56 | ||
| 1185.16.63
by Martin Pool - more error conversion | 57 | # TODO: Perhaps convert the exception to a string at the moment it's 
 | 
| 58 | # constructed to make sure it will succeed.  But that says nothing about
 | |
| 59 | # exceptions that are never raised.
 | |
| 60 | ||
| 61 | # TODO: Convert all the other error classes here to BzrNewError, and eliminate
 | |
| 62 | # the old one.
 | |
| 1185.16.62
by mbp at sourcefrog - convert NotBranchError to new exception base | 63 | |
| 1185.16.61
by mbp at sourcefrog - start introducing hct error classes | 64 | |
| 1
by mbp at sourcefrog import from baz patch-364 | 65 | class BzrError(StandardError): | 
| 1193
by Martin Pool - better string formatting of BzrErrors with explanation | 66 | def __str__(self): | 
| 1393.1.64
by Martin Pool - improved display of some errors, including NotBranchError | 67 |         # XXX: Should we show the exception class in 
 | 
| 68 |         # exceptions that don't provide their own message?  
 | |
| 69 |         # maybe it should be done at a higher level
 | |
| 70 |         ## n = self.__class__.__name__ + ': '
 | |
| 71 | n = '' | |
| 1195
by Martin Pool - better error display | 72 | if len(self.args) == 1: | 
| 1449
by Robert Collins teach check about ghosts | 73 | return str(self.args[0]) | 
| 1195
by Martin Pool - better error display | 74 | elif len(self.args) == 2: | 
| 1193
by Martin Pool - better string formatting of BzrErrors with explanation | 75 |             # further explanation or suggestions
 | 
| 1405
by Robert Collins remove some of the upgrade code that was duplicated with inventory_entry, and give all inventory entries a weave | 76 | try: | 
| 1393.1.64
by Martin Pool - improved display of some errors, including NotBranchError | 77 | return n + '\n '.join([self.args[0]] + self.args[1]) | 
| 1405
by Robert Collins remove some of the upgrade code that was duplicated with inventory_entry, and give all inventory entries a weave | 78 | except TypeError: | 
| 1393.1.64
by Martin Pool - improved display of some errors, including NotBranchError | 79 | return n + "%r" % self | 
| 1193
by Martin Pool - better string formatting of BzrErrors with explanation | 80 | else: | 
| 1393.1.64
by Martin Pool - improved display of some errors, including NotBranchError | 81 | return n + `self.args` | 
| 1193
by Martin Pool - better string formatting of BzrErrors with explanation | 82 | |
| 1185.1.14
by Robert Collins remove more duplicate merged hunks. Bad MERGE3, BAD. | 83 | |
| 1185.16.62
by mbp at sourcefrog - convert NotBranchError to new exception base | 84 | class BzrNewError(BzrError): | 
| 1185.16.61
by mbp at sourcefrog - start introducing hct error classes | 85 | """bzr error""" | 
| 86 |     # base classes should override the docstring with their human-
 | |
| 87 |     # readable explanation
 | |
| 88 | ||
| 89 | def __init__(self, **kwds): | |
| 90 | for key, value in kwds.items(): | |
| 91 | setattr(self, key, value) | |
| 92 | ||
| 93 | def __str__(self): | |
| 94 | try: | |
| 95 | return self.__doc__ % self.__dict__ | |
| 96 | except (NameError, ValueError, KeyError), e: | |
| 97 | return 'Unprintable exception %s: %s' \ | |
| 98 | % (self.__class__.__name__, str(e)) | |
| 99 | ||
| 100 | ||
| 1185.16.63
by Martin Pool - more error conversion | 101 | class BzrCheckError(BzrNewError): | 
| 102 | """Internal check failed: %(message)s""" | |
| 103 | def __init__(self, message): | |
| 1185.16.103
by mbp at sourcefrog Fix up all calls to InvalidRevisionId() to specify parameters. | 104 | BzrNewError.__init__(self) | 
| 1185.16.63
by Martin Pool - more error conversion | 105 | self.message = message | 
| 106 | ||
| 107 | ||
| 108 | class InvalidEntryName(BzrNewError): | |
| 109 | """Invalid entry name: %(name)s""" | |
| 110 | def __init__(self, name): | |
| 1185.16.103
by mbp at sourcefrog Fix up all calls to InvalidRevisionId() to specify parameters. | 111 | BzrNewError.__init__(self) | 
| 1185.16.63
by Martin Pool - more error conversion | 112 | self.name = name | 
| 113 | ||
| 114 | ||
| 115 | class InvalidRevisionNumber(BzrNewError): | |
| 116 | """Invalid revision number %(revno)d""" | |
| 117 | def __init__(self, revno): | |
| 1185.16.103
by mbp at sourcefrog Fix up all calls to InvalidRevisionId() to specify parameters. | 118 | BzrNewError.__init__(self) | 
| 1185.16.63
by Martin Pool - more error conversion | 119 | self.revno = revno | 
| 120 | ||
| 121 | ||
| 122 | class InvalidRevisionId(BzrNewError): | |
| 1185.16.103
by mbp at sourcefrog Fix up all calls to InvalidRevisionId() to specify parameters. | 123 | """Invalid revision-id {%(revision_id)s} in %(branch)s""" | 
| 124 | def __init__(self, revision_id, branch): | |
| 125 | BzrNewError.__init__(self) | |
| 1185.12.90
by Aaron Bentley Fixed InvalidRevisionID handling in Branch.get_revision_xml | 126 | self.revision_id = revision_id | 
| 1185.16.103
by mbp at sourcefrog Fix up all calls to InvalidRevisionId() to specify parameters. | 127 | self.branch = branch | 
| 974.1.26
by aaron.bentley at utoronto merged mbp@sourcefrog.net-20050817233101-0939da1cf91f2472 | 128 | |
| 129 | ||
| 1497
by Robert Collins Move Branch.read_working_inventory to WorkingTree. | 130 | class NoWorkingTree(BzrNewError): | 
| 131 | """No WorkingTree exists for %s(base).""" | |
| 132 | ||
| 133 | def __init__(self, base): | |
| 134 | BzrNewError.__init__(self) | |
| 135 | self.base = base | |
| 136 | ||
| 137 | ||
| 329
by Martin Pool - refactor command functions into command classes | 138 | class BzrCommandError(BzrError): | 
| 139 |     # Error from malformed user command
 | |
| 1495
by Robert Collins Add a --create-prefix to the new push command. | 140 |     # This is being misused as a generic exception
 | 
| 141 |     # pleae subclass. RBC 20051030
 | |
| 1393.1.64
by Martin Pool - improved display of some errors, including NotBranchError | 142 | def __str__(self): | 
| 143 | return self.args[0] | |
| 1
by mbp at sourcefrog import from baz patch-364 | 144 | |
| 1495
by Robert Collins Add a --create-prefix to the new push command. | 145 | |
| 146 | class BzrOptionError(BzrCommandError): | |
| 147 | """Some missing or otherwise incorrect option was supplied.""" | |
| 148 | ||
| 149 | ||
| 1185.16.65
by mbp at sourcefrog - new commit --strict option | 150 | class StrictCommitFailed(Exception): | 
| 151 | """Commit refused because there are unknowns in the tree.""" | |
| 1
by mbp at sourcefrog import from baz patch-364 | 152 | |
| 1185.16.62
by mbp at sourcefrog - convert NotBranchError to new exception base | 153 | class NotBranchError(BzrNewError): | 
| 154 | """Not a branch: %(path)s""" | |
| 1185.16.61
by mbp at sourcefrog - start introducing hct error classes | 155 | def __init__(self, path): | 
| 1185.16.62
by mbp at sourcefrog - convert NotBranchError to new exception base | 156 | BzrNewError.__init__(self) | 
| 157 | self.path = path | |
| 158 | ||
| 573
by Martin Pool - new exception NotBranchError | 159 | |
| 1185.1.53
by Robert Collins raise a specific error on unsupported branches so that they can be distinguished from generic errors | 160 | class UnsupportedFormatError(BzrError): | 
| 161 | """Specified path is a bzr branch that we cannot read.""" | |
| 162 | def __str__(self): | |
| 163 | return 'unsupported branch format: %s' % self.args[0] | |
| 164 | ||
| 165 | ||
| 1185.16.72
by Martin Pool [merge] from robert and fix up tests | 166 | class NotVersionedError(BzrNewError): | 
| 167 | """%(path)s is not versioned""" | |
| 168 | def __init__(self, path): | |
| 169 | BzrNewError.__init__(self) | |
| 170 | self.path = path | |
| 753
by Martin Pool - new exception NotVersionedError | 171 | |
| 172 | ||
| 599
by Martin Pool - better error reporting from smart_add | 173 | class BadFileKindError(BzrError): | 
| 174 | """Specified file is of a kind that cannot be added. | |
| 175 | ||
| 176 |     (For example a symlink or device file.)"""
 | |
| 177 | ||
| 178 | ||
| 179 | class ForbiddenFileError(BzrError): | |
| 180 | """Cannot operate on a file because it is a control file.""" | |
| 181 | ||
| 182 | ||
| 614
by Martin Pool - unify two defintions of LockError | 183 | class LockError(Exception): | 
| 1185.16.63
by Martin Pool - more error conversion | 184 | """Lock error""" | 
| 185 |     # All exceptions from the lock/unlock functions should be from
 | |
| 186 |     # this exception class.  They will be translated as necessary. The
 | |
| 187 |     # original exception is available as e.original_error
 | |
| 882
by Martin Pool - Optionally raise EmptyCommit if there are no changes. Test for this. | 188 | |
| 189 | ||
| 1417.1.6
by Robert Collins introduce transactions for grouping actions done to and with branches | 190 | class CommitNotPossible(LockError): | 
| 191 | """A commit was attempted but we do not have a write lock open.""" | |
| 192 | ||
| 193 | ||
| 194 | class AlreadyCommitted(LockError): | |
| 195 | """A rollback was requested, but is not able to be accomplished.""" | |
| 196 | ||
| 197 | ||
| 1417.1.8
by Robert Collins use transactions in the weave store interface, which enables caching for log | 198 | class ReadOnlyError(LockError): | 
| 199 | """A write attempt was made in a read only transaction.""" | |
| 200 | ||
| 201 | ||
| 1185.16.63
by Martin Pool - more error conversion | 202 | class PointlessCommit(BzrNewError): | 
| 1185.16.64
by Martin Pool - more error conversions | 203 | """No changes to commit""" | 
| 974.1.26
by aaron.bentley at utoronto merged mbp@sourcefrog.net-20050817233101-0939da1cf91f2472 | 204 | |
| 1185.22.1
by Michael Ellerman Implement strict commits with --strict flag. | 205 | class StrictCommitFailed(Exception): | 
| 206 | """Commit refused because there are unknowns in the tree.""" | |
| 974.1.26
by aaron.bentley at utoronto merged mbp@sourcefrog.net-20050817233101-0939da1cf91f2472 | 207 | |
| 208 | class NoSuchRevision(BzrError): | |
| 209 | def __init__(self, branch, revision): | |
| 210 | self.branch = branch | |
| 211 | self.revision = revision | |
| 212 | msg = "Branch %s has no revision %s" % (branch, revision) | |
| 213 | BzrError.__init__(self, msg) | |
| 214 | ||
| 1034
by Martin Pool - merge bzrlib.revision.is_ancestor from aaron | 215 | |
| 1192
by Martin Pool - clean up code for retrieving stored inventories | 216 | class HistoryMissing(BzrError): | 
| 217 | def __init__(self, branch, object_type, object_id): | |
| 218 | self.branch = branch | |
| 219 | BzrError.__init__(self, | |
| 220 | '%s is missing %s {%s}' | |
| 221 | % (branch, object_type, object_id)) | |
| 222 | ||
| 223 | ||
| 1185.2.1
by Lalo Martins moving DivergedBranches from bzrlib.branch to bzrlib.errors, obeying: | 224 | class DivergedBranches(BzrError): | 
| 225 | def __init__(self, branch1, branch2): | |
| 1185.1.14
by Robert Collins remove more duplicate merged hunks. Bad MERGE3, BAD. | 226 | BzrError.__init__(self, "These branches have diverged.") | 
| 1185.2.1
by Lalo Martins moving DivergedBranches from bzrlib.branch to bzrlib.errors, obeying: | 227 | self.branch1 = branch1 | 
| 228 | self.branch2 = branch2 | |
| 229 | ||
| 1390
by Robert Collins pair programming worx... merge integration and weave | 230 | |
| 1105
by Martin Pool - expose 'find-merge-base' as a new expert command, | 231 | class UnrelatedBranches(BzrCommandError): | 
| 232 | def __init__(self): | |
| 233 | msg = "Branches have no common ancestor, and no base revision"\ | |
| 234 |             " specified."
 | |
| 235 | BzrCommandError.__init__(self, msg) | |
| 236 | ||
| 974.1.80
by Aaron Bentley Improved merge error handling and testing | 237 | class NoCommonAncestor(BzrError): | 
| 238 | def __init__(self, revision_a, revision_b): | |
| 239 | msg = "Revisions have no common ancestor: %s %s." \ | |
| 240 | % (revision_a, revision_b) | |
| 241 | BzrError.__init__(self, msg) | |
| 242 | ||
| 243 | class NoCommonRoot(BzrError): | |
| 244 | def __init__(self, revision_a, revision_b): | |
| 245 | msg = "Revisions are not derived from the same root: %s %s." \ | |
| 246 | % (revision_a, revision_b) | |
| 247 | BzrError.__init__(self, msg) | |
| 1105
by Martin Pool - expose 'find-merge-base' as a new expert command, | 248 | |
| 974.2.7
by aaron.bentley at utoronto Merged from bzr.24 | 249 | class NotAncestor(BzrError): | 
| 250 | def __init__(self, rev_id, not_ancestor_id): | |
| 1185.1.14
by Robert Collins remove more duplicate merged hunks. Bad MERGE3, BAD. | 251 | msg = "Revision %s is not an ancestor of %s" % (not_ancestor_id, | 
| 252 | rev_id) | |
| 253 | BzrError.__init__(self, msg) | |
| 254 | self.rev_id = rev_id | |
| 255 | self.not_ancestor_id = not_ancestor_id | |
| 1185.1.12
by Robert Collins merge in lsdiff/filterdiff friendliness | 256 | |
| 257 | ||
| 1092.3.4
by Robert Collins update symlink branch to integration | 258 | class NotAncestor(BzrError): | 
| 259 | def __init__(self, rev_id, not_ancestor_id): | |
| 260 | self.rev_id = rev_id | |
| 261 | self.not_ancestor_id = not_ancestor_id | |
| 262 | msg = "Revision %s is not an ancestor of %s" % (not_ancestor_id, | |
| 263 | rev_id) | |
| 264 | BzrError.__init__(self, msg) | |
| 265 | ||
| 266 | ||
| 974.1.30
by aaron.bentley at utoronto Changed copy_multi to permit failure and return a tuple, tested missing required revisions | 267 | class InstallFailed(BzrError): | 
| 268 | def __init__(self, revisions): | |
| 1185.1.14
by Robert Collins remove more duplicate merged hunks. Bad MERGE3, BAD. | 269 | msg = "Could not install revisions:\n%s" % " ,".join(revisions) | 
| 270 | BzrError.__init__(self, msg) | |
| 974.1.30
by aaron.bentley at utoronto Changed copy_multi to permit failure and return a tuple, tested missing required revisions | 271 | self.revisions = revisions | 
| 1154
by Martin Pool - fix imports for moved errors | 272 | |
| 273 | ||
| 274 | class AmbiguousBase(BzrError): | |
| 275 | def __init__(self, bases): | |
| 276 | msg = "The correct base is unclear, becase %s are all equally close" %\ | |
| 277 | ", ".join(bases) | |
| 278 | BzrError.__init__(self, msg) | |
| 279 | self.bases = bases | |
| 280 | ||
| 974.1.80
by Aaron Bentley Improved merge error handling and testing | 281 | class NoCommits(BzrError): | 
| 282 | def __init__(self, branch): | |
| 283 | msg = "Branch %s has no commits." % branch | |
| 284 | BzrError.__init__(self, msg) | |
| 1185.10.1
by Aaron Bentley Added --basis option to bzr branch | 285 | |
| 286 | class UnlistableStore(BzrError): | |
| 287 | def __init__(self, store): | |
| 288 | BzrError.__init__(self, "Store %s is not listable" % store) | |
| 289 | ||
| 290 | class UnlistableBranch(BzrError): | |
| 291 | def __init__(self, br): | |
| 292 | BzrError.__init__(self, "Stores for branch %s are not listable" % br) | |
| 1392
by Robert Collins reinstate testfetch test case | 293 | |
| 294 | ||
| 1185.16.116
by mbp at sourcefrog Move weave errors into bzrlib.errors and make consistent with new system. | 295 | class WeaveError(BzrNewError): | 
| 296 | """Error in processing weave: %(message)s""" | |
| 297 | def __init__(self, message=None): | |
| 298 | BzrNewError.__init__(self) | |
| 299 | self.message = message | |
| 300 | ||
| 301 | ||
| 302 | class WeaveRevisionAlreadyPresent(WeaveError): | |
| 303 | """Revision {%(revision_id)s} already present in %(weave)s""" | |
| 304 | def __init__(self, revision_id, weave): | |
| 305 | WeaveError.__init__(self) | |
| 306 | self.revision_id = revision_id | |
| 307 | self.weave = weave | |
| 308 | ||
| 309 | ||
| 310 | class WeaveRevisionNotPresent(WeaveError): | |
| 311 | """Revision {%(revision_id)s} not present in %(weave)s""" | |
| 312 | def __init__(self, revision_id, weave): | |
| 313 | WeaveError.__init__(self) | |
| 314 | self.revision_id = revision_id | |
| 315 | self.weave = weave | |
| 316 | ||
| 317 | ||
| 318 | class WeaveFormatError(WeaveError): | |
| 319 | """Weave invariant violated: %(what)s""" | |
| 320 | def __init__(self, what): | |
| 321 | WeaveError.__init__(self) | |
| 322 | self.what = what | |
| 323 | ||
| 324 | ||
| 325 | class WeaveParentMismatch(WeaveError): | |
| 326 | """Parents are mismatched between two revisions.""" | |
| 327 | ||
| 1393.2.1
by John Arbash Meinel Merged in split-storage-2 branch. Need to cleanup a little bit more still. | 328 | |
| 1185.11.9
by John Arbash Meinel Most tests pass, some problems with unavailable socket recv | 329 | class TransportError(BzrError): | 
| 330 | """All errors thrown by Transport implementations should derive | |
| 331 |     from this class.
 | |
| 332 |     """
 | |
| 333 | def __init__(self, msg=None, orig_error=None): | |
| 334 | if msg is None and orig_error is not None: | |
| 335 | msg = str(orig_error) | |
| 336 | BzrError.__init__(self, msg) | |
| 337 | self.msg = msg | |
| 338 | self.orig_error = orig_error | |
| 339 | ||
| 340 | # A set of semi-meaningful errors which can be thrown
 | |
| 341 | class TransportNotPossible(TransportError): | |
| 342 | """This is for transports where a specific function is explicitly not | |
| 343 |     possible. Such as pushing files to an HTTP server.
 | |
| 344 |     """
 | |
| 345 |     pass
 | |
| 346 | ||
| 347 | class NonRelativePath(TransportError): | |
| 348 | """An absolute path was supplied, that could not be decoded into | |
| 349 |     a relative path.
 | |
| 350 |     """
 | |
| 351 |     pass
 | |
| 352 | ||
| 353 | class NoSuchFile(TransportError, IOError): | |
| 354 | """A get() was issued for a file that doesn't exist.""" | |
| 1405
by Robert Collins remove some of the upgrade code that was duplicated with inventory_entry, and give all inventory entries a weave | 355 | |
| 1393.1.64
by Martin Pool - improved display of some errors, including NotBranchError | 356 |     # XXX: Is multiple inheritance for exceptions really needed?
 | 
| 357 | ||
| 1405
by Robert Collins remove some of the upgrade code that was duplicated with inventory_entry, and give all inventory entries a weave | 358 | def __str__(self): | 
| 1393.1.64
by Martin Pool - improved display of some errors, including NotBranchError | 359 | return 'no such file: ' + self.msg | 
| 1405
by Robert Collins remove some of the upgrade code that was duplicated with inventory_entry, and give all inventory entries a weave | 360 | |
| 1185.11.9
by John Arbash Meinel Most tests pass, some problems with unavailable socket recv | 361 | def __init__(self, msg=None, orig_error=None): | 
| 362 | import errno | |
| 363 | TransportError.__init__(self, msg=msg, orig_error=orig_error) | |
| 364 | IOError.__init__(self, errno.ENOENT, self.msg) | |
| 365 | ||
| 366 | class FileExists(TransportError, OSError): | |
| 367 | """An operation was attempted, which would overwrite an entry, | |
| 368 |     but overwritting is not supported.
 | |
| 369 | ||
| 370 |     mkdir() can throw this, but put() just overwites existing files.
 | |
| 371 |     """
 | |
| 1393.1.64
by Martin Pool - improved display of some errors, including NotBranchError | 372 |     # XXX: Is multiple inheritance for exceptions really needed?
 | 
| 1185.11.9
by John Arbash Meinel Most tests pass, some problems with unavailable socket recv | 373 | def __init__(self, msg=None, orig_error=None): | 
| 374 | import errno | |
| 375 | TransportError.__init__(self, msg=msg, orig_error=orig_error) | |
| 376 | OSError.__init__(self, errno.EEXIST, self.msg) | |
| 377 | ||
| 378 | class PermissionDenied(TransportError): | |
| 379 | """An operation cannot succeed because of a lack of permissions.""" | |
| 380 |     pass
 | |
| 381 | ||
| 382 | class ConnectionReset(TransportError): | |
| 383 | """The connection has been closed.""" | |
| 384 |     pass
 | |
| 385 | ||
| 1185.14.10
by Aaron Bentley Commit aborts with conflicts in the tree. | 386 | class ConflictsInTree(BzrError): | 
| 387 | def __init__(self): | |
| 388 | BzrError.__init__(self, "Working tree has conflicts.") | |
| 1185.12.49
by Aaron Bentley Switched to ConfigObj | 389 | |
| 390 | class ParseConfigError(BzrError): | |
| 391 | def __init__(self, errors, filename): | |
| 392 | if filename is None: | |
| 393 | filename = "" | |
| 394 | message = "Error(s) parsing config file %s:\n%s" % \ | |
| 395 | (filename, ('\n'.join(e.message for e in errors))) | |
| 396 | BzrError.__init__(self, message) | |
| 1185.12.52
by Aaron Bentley Merged more config stuff from Robert | 397 | |
| 1442.1.58
by Robert Collins gpg signing of content | 398 | class SigningFailed(BzrError): | 
| 399 | def __init__(self, command_line): | |
| 400 | BzrError.__init__(self, "Failed to gpg sign data with command '%s'" | |
| 401 | % command_line) | |
| 1185.12.83
by Aaron Bentley Preliminary weave merge support | 402 | |
| 403 | class WorkingTreeNotRevision(BzrError): | |
| 404 | def __init__(self, tree): | |
| 405 | BzrError.__init__(self, "The working tree for %s has changed since" | |
| 406 |                           " last commit, but weave merge requires that it be"
 | |
| 407 | " unchanged." % tree.basedir) | |
| 1185.12.104
by Aaron Bentley Merged Martin's latest | 408 | |
| 1185.24.1
by Aaron Bentley Got reprocessing working | 409 | class CantReprocessAndShowBase(BzrNewError): | 
| 410 | """Can't reprocess and show base. | |
| 411 | Reprocessing obscures relationship of conflicting lines to base."""
 | |
| 1185.24.2
by Aaron Bentley Merge from mainline | 412 | |
| 1185.16.114
by mbp at sourcefrog Improved topological sort | 413 | class GraphCycleError(BzrNewError): | 
| 414 | """Cycle in graph %(graph)r""" | |
| 415 | def __init__(self, graph): | |
| 416 | BzrNewError.__init__(self) | |
| 417 | self.graph = graph | |
| 1492
by Robert Collins Support decoration of commands. | 418 | |
| 419 | class MustUseDecorated(Exception): | |
| 420 | """A decorating function has requested its original command be used. | |
| 421 |     
 | |
| 422 |     This should never escape bzr, so does not need to be printable.
 | |
| 423 |     """
 | |
| 424 |