bzr branch
http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
| 1553.5.24
by Martin Pool Warning to check storage when lock was broken | 1 | # Copyright (C) 2005, 2006 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
 | |
| 1185.50.38
by John Arbash Meinel Changed exception traceback route to not use hasattr, which generates its own exception. | 37 | ...   path = getattr(sys.exc_value, 'path')
 | 
| 38 | ...   if path is not None:
 | |
| 39 | ...     print path
 | |
| 1185.16.61
by mbp at sourcefrog - start introducing hct error classes | 40 | bzrlib.errors.NotBranchError
 | 
| 41 | Not a branch: /foo/bar
 | |
| 42 | /foo/bar
 | |
| 43 | ||
| 44 | Therefore:
 | |
| 45 | ||
| 46 |  * create a new exception class for any class of error that can be
 | |
| 47 |    usefully distinguished.
 | |
| 48 | ||
| 49 |  * the printable form of an exception is generated by the base class
 | |
| 50 |    __str__ method
 | |
| 1185.33.7
by Martin Pool Better formatting of builtin errors | 51 | |
| 52 | Exception strings should start with a capital letter and not have a final
 | |
| 53 | fullstop.
 | |
| 1185.16.61
by mbp at sourcefrog - start introducing hct error classes | 54 | """
 | 
| 55 | ||
| 1614.2.13
by Olaf Conradi Re-added AmbiguousBase with a deprecated warning. | 56 | from warnings import warn | 
| 57 | ||
| 1185.16.61
by mbp at sourcefrog - start introducing hct error classes | 58 | # based on Scott James Remnant's hct error classes
 | 
| 59 | ||
| 1185.16.62
by mbp at sourcefrog - convert NotBranchError to new exception base | 60 | # TODO: is there any value in providing the .args field used by standard
 | 
| 61 | # python exceptions?   A list of values with no names seems less useful 
 | |
| 62 | # to me.
 | |
| 63 | ||
| 1185.16.63
by Martin Pool - more error conversion | 64 | # TODO: Perhaps convert the exception to a string at the moment it's 
 | 
| 65 | # constructed to make sure it will succeed.  But that says nothing about
 | |
| 66 | # exceptions that are never raised.
 | |
| 67 | ||
| 68 | # TODO: Convert all the other error classes here to BzrNewError, and eliminate
 | |
| 69 | # the old one.
 | |
| 1185.16.62
by mbp at sourcefrog - convert NotBranchError to new exception base | 70 | |
| 1662.1.12
by Martin Pool Translate unknown sftp errors to PathError, no NoSuchFile | 71 | # TODO: The pattern (from hct) of using classes docstrings as message
 | 
| 72 | # templates is cute but maybe not such a great idea - perhaps should have a
 | |
| 73 | # separate static message_template.
 | |
| 74 | ||
| 1185.16.61
by mbp at sourcefrog - start introducing hct error classes | 75 | |
| 1
by mbp at sourcefrog import from baz patch-364 | 76 | class BzrError(StandardError): | 
| 1193
by Martin Pool - better string formatting of BzrErrors with explanation | 77 | def __str__(self): | 
| 1393.1.64
by Martin Pool - improved display of some errors, including NotBranchError | 78 |         # XXX: Should we show the exception class in 
 | 
| 79 |         # exceptions that don't provide their own message?  
 | |
| 80 |         # maybe it should be done at a higher level
 | |
| 81 |         ## n = self.__class__.__name__ + ': '
 | |
| 82 | n = '' | |
| 1195
by Martin Pool - better error display | 83 | if len(self.args) == 1: | 
| 1449
by Robert Collins teach check about ghosts | 84 | return str(self.args[0]) | 
| 1195
by Martin Pool - better error display | 85 | elif len(self.args) == 2: | 
| 1193
by Martin Pool - better string formatting of BzrErrors with explanation | 86 |             # 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 | 87 | try: | 
| 1393.1.64
by Martin Pool - improved display of some errors, including NotBranchError | 88 | 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 | 89 | except TypeError: | 
| 1393.1.64
by Martin Pool - improved display of some errors, including NotBranchError | 90 | return n + "%r" % self | 
| 1193
by Martin Pool - better string formatting of BzrErrors with explanation | 91 | else: | 
| 1393.1.64
by Martin Pool - improved display of some errors, including NotBranchError | 92 | return n + `self.args` | 
| 1193
by Martin Pool - better string formatting of BzrErrors with explanation | 93 | |
| 1185.1.14
by Robert Collins remove more duplicate merged hunks. Bad MERGE3, BAD. | 94 | |
| 1185.16.62
by mbp at sourcefrog - convert NotBranchError to new exception base | 95 | class BzrNewError(BzrError): | 
| 1185.16.61
by mbp at sourcefrog - start introducing hct error classes | 96 | """bzr error""" | 
| 97 |     # base classes should override the docstring with their human-
 | |
| 98 |     # readable explanation
 | |
| 99 | ||
| 100 | def __init__(self, **kwds): | |
| 101 | for key, value in kwds.items(): | |
| 102 | setattr(self, key, value) | |
| 103 | ||
| 104 | def __str__(self): | |
| 105 | try: | |
| 106 | return self.__doc__ % self.__dict__ | |
| 107 | except (NameError, ValueError, KeyError), e: | |
| 108 | return 'Unprintable exception %s: %s' \ | |
| 109 | % (self.__class__.__name__, str(e)) | |
| 110 | ||
| 111 | ||
| 1185.16.63
by Martin Pool - more error conversion | 112 | class BzrCheckError(BzrNewError): | 
| 113 | """Internal check failed: %(message)s""" | |
| 1508.1.22
by Robert Collins implement out of date working tree checks in commit. | 114 | |
| 1185.16.63
by Martin Pool - more error conversion | 115 | def __init__(self, message): | 
| 1185.16.103
by mbp at sourcefrog Fix up all calls to InvalidRevisionId() to specify parameters. | 116 | BzrNewError.__init__(self) | 
| 1185.16.63
by Martin Pool - more error conversion | 117 | self.message = message | 
| 118 | ||
| 119 | ||
| 120 | class InvalidEntryName(BzrNewError): | |
| 121 | """Invalid entry name: %(name)s""" | |
| 122 | def __init__(self, name): | |
| 1185.16.103
by mbp at sourcefrog Fix up all calls to InvalidRevisionId() to specify parameters. | 123 | BzrNewError.__init__(self) | 
| 1185.16.63
by Martin Pool - more error conversion | 124 | self.name = name | 
| 125 | ||
| 126 | ||
| 127 | class InvalidRevisionNumber(BzrNewError): | |
| 128 | """Invalid revision number %(revno)d""" | |
| 129 | def __init__(self, revno): | |
| 1185.16.103
by mbp at sourcefrog Fix up all calls to InvalidRevisionId() to specify parameters. | 130 | BzrNewError.__init__(self) | 
| 1185.16.63
by Martin Pool - more error conversion | 131 | self.revno = revno | 
| 132 | ||
| 133 | ||
| 134 | class InvalidRevisionId(BzrNewError): | |
| 1185.16.103
by mbp at sourcefrog Fix up all calls to InvalidRevisionId() to specify parameters. | 135 | """Invalid revision-id {%(revision_id)s} in %(branch)s""" | 
| 136 | def __init__(self, revision_id, branch): | |
| 137 | BzrNewError.__init__(self) | |
| 1185.12.90
by Aaron Bentley Fixed InvalidRevisionID handling in Branch.get_revision_xml | 138 | self.revision_id = revision_id | 
| 1185.16.103
by mbp at sourcefrog Fix up all calls to InvalidRevisionId() to specify parameters. | 139 | self.branch = branch | 
| 974.1.26
by aaron.bentley at utoronto merged mbp@sourcefrog.net-20050817233101-0939da1cf91f2472 | 140 | |
| 141 | ||
| 1497
by Robert Collins Move Branch.read_working_inventory to WorkingTree. | 142 | class NoWorkingTree(BzrNewError): | 
| 1662.1.6
by Martin Pool Fix formatting of NoWorkingTree and NotLocalUrl exceptions | 143 | """No WorkingTree exists for %(base)s.""" | 
| 1497
by Robert Collins Move Branch.read_working_inventory to WorkingTree. | 144 | |
| 145 | def __init__(self, base): | |
| 146 | BzrNewError.__init__(self) | |
| 147 | self.base = base | |
| 1506
by Robert Collins Merge Johns current integration work. | 148 | |
| 149 | ||
| 1534.4.42
by Robert Collins add working tree to the BzrDir facilities. | 150 | class NotLocalUrl(BzrNewError): | 
| 1662.1.6
by Martin Pool Fix formatting of NoWorkingTree and NotLocalUrl exceptions | 151 | """%(url)s is not a local path.""" | 
| 1534.4.42
by Robert Collins add working tree to the BzrDir facilities. | 152 | |
| 153 | def __init__(self, url): | |
| 154 | BzrNewError.__init__(self) | |
| 155 | self.url = url | |
| 156 | ||
| 157 | ||
| 329
by Martin Pool - refactor command functions into command classes | 158 | class BzrCommandError(BzrError): | 
| 159 |     # Error from malformed user command
 | |
| 1495
by Robert Collins Add a --create-prefix to the new push command. | 160 |     # This is being misused as a generic exception
 | 
| 161 |     # pleae subclass. RBC 20051030
 | |
| 1185.54.18
by Aaron Bentley Noted difference of opinion wrt BzrCommandError | 162 |     #
 | 
| 163 |     # I think it's a waste of effort to differentiate between errors that
 | |
| 164 |     # are not intended to be caught anyway.  UI code need not subclass
 | |
| 165 |     # BzrCommandError, and non-UI code should not throw a subclass of
 | |
| 166 |     # BzrCommandError.  ADHB 20051211
 | |
| 1393.1.64
by Martin Pool - improved display of some errors, including NotBranchError | 167 | def __str__(self): | 
| 168 | return self.args[0] | |
| 1
by mbp at sourcefrog import from baz patch-364 | 169 | |
| 1495
by Robert Collins Add a --create-prefix to the new push command. | 170 | |
| 171 | class BzrOptionError(BzrCommandError): | |
| 172 | """Some missing or otherwise incorrect option was supplied.""" | |
| 173 | ||
| 174 | ||
| 1185.16.65
by mbp at sourcefrog - new commit --strict option | 175 | class StrictCommitFailed(Exception): | 
| 176 | """Commit refused because there are unknowns in the tree.""" | |
| 1
by mbp at sourcefrog import from baz patch-364 | 177 | |
| 1185.31.41
by John Arbash Meinel Creating a PathNotChild exception, and using relpath in HTTPTestUtil | 178 | |
| 1662.1.12
by Martin Pool Translate unknown sftp errors to PathError, no NoSuchFile | 179 | # XXX: Should be unified with TransportError; they seem to represent the
 | 
| 180 | # same thing
 | |
| 1185.31.44
by John Arbash Meinel Cleaned up Exceptions for all transports. | 181 | class PathError(BzrNewError): | 
| 182 | """Generic path error: %(path)r%(extra)s)""" | |
| 1654.1.4
by Robert Collins Teach `bzr init` how to init at the root of a repository. | 183 | |
| 1185.31.44
by John Arbash Meinel Cleaned up Exceptions for all transports. | 184 | def __init__(self, path, extra=None): | 
| 185 | BzrNewError.__init__(self) | |
| 186 | self.path = path | |
| 187 | if extra: | |
| 188 | self.extra = ': ' + str(extra) | |
| 189 | else: | |
| 190 | self.extra = '' | |
| 191 | ||
| 192 | ||
| 193 | class NoSuchFile(PathError): | |
| 194 | """No such file: %(path)r%(extra)s""" | |
| 195 | ||
| 196 | ||
| 197 | class FileExists(PathError): | |
| 198 | """File exists: %(path)r%(extra)s""" | |
| 199 | ||
| 200 | ||
| 1553.5.10
by Martin Pool New DirectoryNotEmpty exception, and raise this from local and memory | 201 | class DirectoryNotEmpty(PathError): | 
| 202 | """Directory not empty: %(path)r%(extra)s""" | |
| 203 | ||
| 204 | ||
| 1558.10.1
by Aaron Bentley Handle lockdirs over NFS properly | 205 | class ResourceBusy(PathError): | 
| 206 | """Device or resource busy: %(path)r%(extra)s""" | |
| 207 | ||
| 208 | ||
| 1185.31.44
by John Arbash Meinel Cleaned up Exceptions for all transports. | 209 | class PermissionDenied(PathError): | 
| 210 | """Permission denied: %(path)r%(extra)s""" | |
| 211 | ||
| 212 | ||
| 1185.31.41
by John Arbash Meinel Creating a PathNotChild exception, and using relpath in HTTPTestUtil | 213 | class PathNotChild(BzrNewError): | 
| 1185.31.44
by John Arbash Meinel Cleaned up Exceptions for all transports. | 214 | """Path %(path)r is not a child of path %(base)r%(extra)s""" | 
| 215 | def __init__(self, path, base, extra=None): | |
| 1185.31.41
by John Arbash Meinel Creating a PathNotChild exception, and using relpath in HTTPTestUtil | 216 | BzrNewError.__init__(self) | 
| 217 | self.path = path | |
| 218 | self.base = base | |
| 1185.31.44
by John Arbash Meinel Cleaned up Exceptions for all transports. | 219 | if extra: | 
| 220 | self.extra = ': ' + str(extra) | |
| 221 | else: | |
| 222 | self.extra = '' | |
| 1185.31.41
by John Arbash Meinel Creating a PathNotChild exception, and using relpath in HTTPTestUtil | 223 | |
| 224 | ||
| 1654.1.4
by Robert Collins Teach `bzr init` how to init at the root of a repository. | 225 | class NotBranchError(PathError): | 
| 1185.16.62
by mbp at sourcefrog - convert NotBranchError to new exception base | 226 | """Not a branch: %(path)s""" | 
| 1654.1.4
by Robert Collins Teach `bzr init` how to init at the root of a repository. | 227 | |
| 228 | ||
| 229 | class AlreadyBranchError(PathError): | |
| 1662.1.19
by Martin Pool Better error message when initting existing tree | 230 | """Already a branch: %(path)s.""" | 
| 231 | ||
| 232 | ||
| 233 | class BranchExistsWithoutWorkingTree(PathError): | |
| 234 | """Directory contains a branch, but no working tree \ | |
| 235 | (use bzr checkout if you wish to build a working tree): %(path)s"""
 | |
| 1185.16.62
by mbp at sourcefrog - convert NotBranchError to new exception base | 236 | |
| 573
by Martin Pool - new exception NotBranchError | 237 | |
| 1534.4.47
by Robert Collins Split out repository into .bzr/repository | 238 | class NoRepositoryPresent(BzrNewError): | 
| 1185.50.89
by John Arbash Meinel grammer fix. | 239 | """No repository present: %(path)r""" | 
| 1534.4.47
by Robert Collins Split out repository into .bzr/repository | 240 | def __init__(self, bzrdir): | 
| 241 | BzrNewError.__init__(self) | |
| 242 | self.path = bzrdir.transport.clone('..').base | |
| 243 | ||
| 244 | ||
| 1185.35.32
by Aaron Bentley Fixed handling of files in mixed branches | 245 | class FileInWrongBranch(BzrNewError): | 
| 246 | """File %(path)s in not in branch %(branch_base)s.""" | |
| 1534.4.44
by Robert Collins Make a new BzrDir format that uses a versioned branch format in a branch/ subdirectory. | 247 | |
| 1185.35.32
by Aaron Bentley Fixed handling of files in mixed branches | 248 | def __init__(self, branch, path): | 
| 249 | BzrNewError.__init__(self) | |
| 250 | self.branch = branch | |
| 251 | self.branch_base = branch.base | |
| 252 | self.path = path | |
| 253 | ||
| 254 | ||
| 1185.1.53
by Robert Collins raise a specific error on unsupported branches so that they can be distinguished from generic errors | 255 | class UnsupportedFormatError(BzrError): | 
| 1534.4.7
by Robert Collins Move downlevel check up to the Branch.open logic, removing it from the Branch constructor and deprecating relax_version_check to the same. | 256 | """Specified path is a bzr branch that we recognize but cannot read.""" | 
| 1185.1.53
by Robert Collins raise a specific error on unsupported branches so that they can be distinguished from generic errors | 257 | def __str__(self): | 
| 258 | return 'unsupported branch format: %s' % self.args[0] | |
| 259 | ||
| 260 | ||
| 1534.4.7
by Robert Collins Move downlevel check up to the Branch.open logic, removing it from the Branch constructor and deprecating relax_version_check to the same. | 261 | class UnknownFormatError(BzrError): | 
| 262 | """Specified path is a bzr branch whose format we do not recognize.""" | |
| 263 | def __str__(self): | |
| 264 | return 'unknown branch format: %s' % self.args[0] | |
| 265 | ||
| 266 | ||
| 1534.4.44
by Robert Collins Make a new BzrDir format that uses a versioned branch format in a branch/ subdirectory. | 267 | class IncompatibleFormat(BzrNewError): | 
| 268 | """Format %(format)s is not compatible with .bzr version %(bzrdir)s.""" | |
| 269 | ||
| 270 | def __init__(self, format, bzrdir_format): | |
| 271 | BzrNewError.__init__(self) | |
| 272 | self.format = format | |
| 273 | self.bzrdir = bzrdir_format | |
| 274 | ||
| 275 | ||
| 1185.16.72
by Martin Pool [merge] from robert and fix up tests | 276 | class NotVersionedError(BzrNewError): | 
| 277 | """%(path)s is not versioned""" | |
| 278 | def __init__(self, path): | |
| 279 | BzrNewError.__init__(self) | |
| 280 | self.path = path | |
| 753
by Martin Pool - new exception NotVersionedError | 281 | |
| 282 | ||
| 1658.1.9
by Martin Pool Give an error for bzr diff on an nonexistent file (Malone #3619) | 283 | class PathsNotVersionedError(BzrNewError): | 
| 284 |     # used when reporting several paths are not versioned
 | |
| 285 | """Path(s) are not versioned: %(paths_as_string)s""" | |
| 286 | ||
| 287 | def __init__(self, paths): | |
| 288 | from bzrlib.osutils import quotefn | |
| 289 | BzrNewError.__init__(self) | |
| 290 | self.paths = paths | |
| 291 | self.paths_as_string = ' '.join([quotefn(p) for p in paths]) | |
| 292 | ||
| 293 | ||
| 1662.1.9
by Martin Pool Give a clear error for bzr status of an unversioned, nonexistent file. (Malone #3619) | 294 | class PathsDoNotExist(BzrNewError): | 
| 1662.1.14
by Martin Pool (PathsDoNotExist) review style comments | 295 | """Path(s) do not exist: %(paths_as_string)s""" | 
| 296 | ||
| 1662.1.9
by Martin Pool Give a clear error for bzr status of an unversioned, nonexistent file. (Malone #3619) | 297 |     # used when reporting that paths are neither versioned nor in the working
 | 
| 298 |     # tree
 | |
| 299 | ||
| 300 | def __init__(self, paths): | |
| 1662.1.14
by Martin Pool (PathsDoNotExist) review style comments | 301 |         # circular import
 | 
| 1662.1.9
by Martin Pool Give a clear error for bzr status of an unversioned, nonexistent file. (Malone #3619) | 302 | from bzrlib.osutils import quotefn | 
| 303 | BzrNewError.__init__(self) | |
| 304 | self.paths = paths | |
| 305 | self.paths_as_string = ' '.join([quotefn(p) for p in paths]) | |
| 306 | ||
| 307 | ||
| 599
by Martin Pool - better error reporting from smart_add | 308 | class BadFileKindError(BzrError): | 
| 309 | """Specified file is of a kind that cannot be added. | |
| 310 | ||
| 311 |     (For example a symlink or device file.)"""
 | |
| 312 | ||
| 313 | ||
| 314 | class ForbiddenFileError(BzrError): | |
| 315 | """Cannot operate on a file because it is a control file.""" | |
| 316 | ||
| 317 | ||
| 1553.5.11
by Martin Pool Change some lock and transaction related exceptions to BzrNewException style | 318 | class LockError(BzrNewError): | 
| 319 | """Lock error: %(message)s""" | |
| 1185.16.63
by Martin Pool - more error conversion | 320 |     # All exceptions from the lock/unlock functions should be from
 | 
| 321 |     # this exception class.  They will be translated as necessary. The
 | |
| 322 |     # original exception is available as e.original_error
 | |
| 1553.5.11
by Martin Pool Change some lock and transaction related exceptions to BzrNewException style | 323 |     #
 | 
| 324 |     # New code should prefer to raise specific subclasses
 | |
| 325 | def __init__(self, message): | |
| 326 | self.message = message | |
| 882
by Martin Pool - Optionally raise EmptyCommit if there are no changes. Test for this. | 327 | |
| 328 | ||
| 1417.1.6
by Robert Collins introduce transactions for grouping actions done to and with branches | 329 | class CommitNotPossible(LockError): | 
| 330 | """A commit was attempted but we do not have a write lock open.""" | |
| 1553.5.11
by Martin Pool Change some lock and transaction related exceptions to BzrNewException style | 331 | def __init__(self): | 
| 332 |         pass
 | |
| 1417.1.6
by Robert Collins introduce transactions for grouping actions done to and with branches | 333 | |
| 334 | ||
| 335 | class AlreadyCommitted(LockError): | |
| 336 | """A rollback was requested, but is not able to be accomplished.""" | |
| 1553.5.11
by Martin Pool Change some lock and transaction related exceptions to BzrNewException style | 337 | def __init__(self): | 
| 338 |         pass
 | |
| 1417.1.6
by Robert Collins introduce transactions for grouping actions done to and with branches | 339 | |
| 340 | ||
| 1417.1.8
by Robert Collins use transactions in the weave store interface, which enables caching for log | 341 | class ReadOnlyError(LockError): | 
| 1553.5.33
by Martin Pool LockDir review comment fixes | 342 | """A write attempt was made in a read only transaction on %(obj)s""" | 
| 343 | def __init__(self, obj): | |
| 344 | self.obj = obj | |
| 1553.5.11
by Martin Pool Change some lock and transaction related exceptions to BzrNewException style | 345 | |
| 346 | ||
| 1594.2.21
by Robert Collins Teach versioned files to prevent mutation after finishing. | 347 | class OutSideTransaction(BzrNewError): | 
| 348 | """A transaction related operation was attempted after the transaction finished.""" | |
| 349 | ||
| 350 | ||
| 1553.5.36
by Martin Pool Clean up duplicate BranchNotLocked error and rename to ObjectNotLocked | 351 | class ObjectNotLocked(LockError): | 
| 352 | """%(obj)r is not locked""" | |
| 353 |     # this can indicate that any particular object is not locked; see also
 | |
| 354 |     # LockNotHeld which means that a particular *lock* object is not held by
 | |
| 355 |     # the caller -- perhaps they should be unified.
 | |
| 356 | def __init__(self, obj): | |
| 357 | self.obj = obj | |
| 1553.5.11
by Martin Pool Change some lock and transaction related exceptions to BzrNewException style | 358 | |
| 359 | ||
| 360 | class ReadOnlyObjectDirtiedError(ReadOnlyError): | |
| 361 | """Cannot change object %(obj)r in read only transaction""" | |
| 362 | def __init__(self, obj): | |
| 363 | self.obj = obj | |
| 364 | ||
| 365 | ||
| 366 | class UnlockableTransport(LockError): | |
| 367 | """Cannot lock: transport is read only: %(transport)s""" | |
| 368 | def __init__(self, transport): | |
| 369 | self.transport = transport | |
| 370 | ||
| 371 | ||
| 372 | class LockContention(LockError): | |
| 373 | """Could not acquire lock %(lock)s""" | |
| 374 |     # TODO: show full url for lock, combining the transport and relative bits?
 | |
| 375 | def __init__(self, lock): | |
| 376 | self.lock = lock | |
| 377 | ||
| 378 | ||
| 1553.5.23
by Martin Pool Start LockDir.confirm method and LockBroken exception | 379 | class LockBroken(LockError): | 
| 1553.5.24
by Martin Pool Warning to check storage when lock was broken | 380 | """Lock was broken while still open: %(lock)s - check storage consistency!""" | 
| 1553.5.23
by Martin Pool Start LockDir.confirm method and LockBroken exception | 381 | def __init__(self, lock): | 
| 382 | self.lock = lock | |
| 383 | ||
| 384 | ||
| 1553.5.27
by Martin Pool Confirm that only the intended holder of a lock was broken. | 385 | class LockBreakMismatch(LockError): | 
| 386 | """Lock was released and re-acquired before being broken: %(lock)s: held by %(holder)r, wanted to break %(target)r""" | |
| 387 | def __init__(self, lock, holder, target): | |
| 388 | self.lock = lock | |
| 389 | self.holder = holder | |
| 390 | self.target = target | |
| 391 | ||
| 392 | ||
| 1553.5.11
by Martin Pool Change some lock and transaction related exceptions to BzrNewException style | 393 | class LockNotHeld(LockError): | 
| 394 | """Lock not held: %(lock)s""" | |
| 395 | def __init__(self, lock): | |
| 396 | self.lock = lock | |
| 397 | ||
| 398 | ||
| 1185.16.63
by Martin Pool - more error conversion | 399 | class PointlessCommit(BzrNewError): | 
| 1185.16.64
by Martin Pool - more error conversions | 400 | """No changes to commit""" | 
| 974.1.26
by aaron.bentley at utoronto merged mbp@sourcefrog.net-20050817233101-0939da1cf91f2472 | 401 | |
| 1551.3.1
by Aaron Bentley PEP8 fixes | 402 | |
| 1534.4.13
by Robert Collins Give a reasonable warning on attempts to upgrade a readonly url. | 403 | class UpgradeReadonly(BzrNewError): | 
| 404 | """Upgrade URL cannot work with readonly URL's.""" | |
| 405 | ||
| 406 | ||
| 1534.5.7
by Robert Collins Start factoring out the upgrade policy logic. | 407 | class UpToDateFormat(BzrNewError): | 
| 408 | """The branch format %(format)s is already at the most recent format.""" | |
| 409 | ||
| 410 | def __init__(self, format): | |
| 411 | BzrNewError.__init__(self) | |
| 412 | self.format = format | |
| 413 | ||
| 414 | ||
| 1587.1.6
by Robert Collins Update bound branch implementation to 0.8. | 415 | |
| 1185.22.1
by Michael Ellerman Implement strict commits with --strict flag. | 416 | class StrictCommitFailed(Exception): | 
| 417 | """Commit refused because there are unknowns in the tree.""" | |
| 974.1.26
by aaron.bentley at utoronto merged mbp@sourcefrog.net-20050817233101-0939da1cf91f2472 | 418 | |
| 1505.1.2
by John Arbash Meinel (broken) working on implementing bound branches. | 419 | |
| 974.1.26
by aaron.bentley at utoronto merged mbp@sourcefrog.net-20050817233101-0939da1cf91f2472 | 420 | class NoSuchRevision(BzrError): | 
| 421 | def __init__(self, branch, revision): | |
| 422 | self.branch = branch | |
| 423 | self.revision = revision | |
| 424 | msg = "Branch %s has no revision %s" % (branch, revision) | |
| 425 | BzrError.__init__(self, msg) | |
| 426 | ||
| 1034
by Martin Pool - merge bzrlib.revision.is_ancestor from aaron | 427 | |
| 1192
by Martin Pool - clean up code for retrieving stored inventories | 428 | class HistoryMissing(BzrError): | 
| 429 | def __init__(self, branch, object_type, object_id): | |
| 430 | self.branch = branch | |
| 431 | BzrError.__init__(self, | |
| 432 | '%s is missing %s {%s}' | |
| 433 | % (branch, object_type, object_id)) | |
| 434 | ||
| 435 | ||
| 1185.2.1
by Lalo Martins moving DivergedBranches from bzrlib.branch to bzrlib.errors, obeying: | 436 | class DivergedBranches(BzrError): | 
| 1649.1.1
by Robert Collins * 'pull' and 'push' now normalise the revision history, so that any two | 437 | |
| 1185.2.1
by Lalo Martins moving DivergedBranches from bzrlib.branch to bzrlib.errors, obeying: | 438 | def __init__(self, branch1, branch2): | 
| 1185.56.1
by Michael Ellerman Simplify handling of DivergedBranches in cmd_pull() | 439 | BzrError.__init__(self, "These branches have diverged. Try merge.") | 
| 1185.2.1
by Lalo Martins moving DivergedBranches from bzrlib.branch to bzrlib.errors, obeying: | 440 | self.branch1 = branch1 | 
| 441 | self.branch2 = branch2 | |
| 442 | ||
| 1390
by Robert Collins pair programming worx... merge integration and weave | 443 | |
| 1105
by Martin Pool - expose 'find-merge-base' as a new expert command, | 444 | class UnrelatedBranches(BzrCommandError): | 
| 445 | def __init__(self): | |
| 446 | msg = "Branches have no common ancestor, and no base revision"\ | |
| 447 |             " specified."
 | |
| 448 | BzrCommandError.__init__(self, msg) | |
| 449 | ||
| 1551.2.1
by Aaron Bentley recommit 1527 PEP8 fixes | 450 | |
| 974.1.80
by Aaron Bentley Improved merge error handling and testing | 451 | class NoCommonAncestor(BzrError): | 
| 452 | def __init__(self, revision_a, revision_b): | |
| 453 | msg = "Revisions have no common ancestor: %s %s." \ | |
| 454 | % (revision_a, revision_b) | |
| 455 | BzrError.__init__(self, msg) | |
| 456 | ||
| 1551.2.1
by Aaron Bentley recommit 1527 PEP8 fixes | 457 | |
| 974.1.80
by Aaron Bentley Improved merge error handling and testing | 458 | class NoCommonRoot(BzrError): | 
| 459 | def __init__(self, revision_a, revision_b): | |
| 460 | msg = "Revisions are not derived from the same root: %s %s." \ | |
| 461 | % (revision_a, revision_b) | |
| 462 | BzrError.__init__(self, msg) | |
| 1105
by Martin Pool - expose 'find-merge-base' as a new expert command, | 463 | |
| 1551.2.1
by Aaron Bentley recommit 1527 PEP8 fixes | 464 | |
| 1587.1.6
by Robert Collins Update bound branch implementation to 0.8. | 465 | |
| 974.2.7
by aaron.bentley at utoronto Merged from bzr.24 | 466 | class NotAncestor(BzrError): | 
| 467 | def __init__(self, rev_id, not_ancestor_id): | |
| 1185.1.14
by Robert Collins remove more duplicate merged hunks. Bad MERGE3, BAD. | 468 | msg = "Revision %s is not an ancestor of %s" % (not_ancestor_id, | 
| 469 | rev_id) | |
| 470 | BzrError.__init__(self, msg) | |
| 471 | self.rev_id = rev_id | |
| 472 | self.not_ancestor_id = not_ancestor_id | |
| 1185.1.12
by Robert Collins merge in lsdiff/filterdiff friendliness | 473 | |
| 474 | ||
| 974.1.30
by aaron.bentley at utoronto Changed copy_multi to permit failure and return a tuple, tested missing required revisions | 475 | class InstallFailed(BzrError): | 
| 476 | def __init__(self, revisions): | |
| 1185.1.14
by Robert Collins remove more duplicate merged hunks. Bad MERGE3, BAD. | 477 | msg = "Could not install revisions:\n%s" % " ,".join(revisions) | 
| 478 | 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 | 479 | self.revisions = revisions | 
| 1154
by Martin Pool - fix imports for moved errors | 480 | |
| 481 | ||
| 1614.2.13
by Olaf Conradi Re-added AmbiguousBase with a deprecated warning. | 482 | class AmbiguousBase(BzrError): | 
| 483 | def __init__(self, bases): | |
| 484 | warn("BzrError AmbiguousBase has been deprecated as of bzrlib 0.8.", | |
| 485 | DeprecationWarning) | |
| 486 | msg = "The correct base is unclear, becase %s are all equally close" %\ | |
| 487 | ", ".join(bases) | |
| 488 | BzrError.__init__(self, msg) | |
| 489 | self.bases = bases | |
| 490 | ||
| 491 | ||
| 974.1.80
by Aaron Bentley Improved merge error handling and testing | 492 | class NoCommits(BzrError): | 
| 493 | def __init__(self, branch): | |
| 494 | msg = "Branch %s has no commits." % branch | |
| 495 | BzrError.__init__(self, msg) | |
| 1185.10.1
by Aaron Bentley Added --basis option to bzr branch | 496 | |
| 1551.2.1
by Aaron Bentley recommit 1527 PEP8 fixes | 497 | |
| 1185.10.1
by Aaron Bentley Added --basis option to bzr branch | 498 | class UnlistableStore(BzrError): | 
| 499 | def __init__(self, store): | |
| 500 | BzrError.__init__(self, "Store %s is not listable" % store) | |
| 501 | ||
| 1551.2.1
by Aaron Bentley recommit 1527 PEP8 fixes | 502 | |
| 1587.1.6
by Robert Collins Update bound branch implementation to 0.8. | 503 | |
| 1185.10.1
by Aaron Bentley Added --basis option to bzr branch | 504 | class UnlistableBranch(BzrError): | 
| 505 | def __init__(self, br): | |
| 506 | BzrError.__init__(self, "Stores for branch %s are not listable" % br) | |
| 1392
by Robert Collins reinstate testfetch test case | 507 | |
| 508 | ||
| 1505.1.24
by John Arbash Meinel Updated commit to handle bound branches. Included test to handle commit after merge | 509 | class BoundBranchOutOfDate(BzrNewError): | 
| 510 | """Bound branch %(branch)s is out of date with master branch %(master)s.""" | |
| 511 | def __init__(self, branch, master): | |
| 512 | BzrNewError.__init__(self) | |
| 513 | self.branch = branch | |
| 514 | self.master = master | |
| 515 | ||
| 516 | ||
| 517 | class CommitToDoubleBoundBranch(BzrNewError): | |
| 518 | """Cannot commit to branch %(branch)s. It is bound to %(master)s, which is bound to %(remote)s.""" | |
| 519 | def __init__(self, branch, master, remote): | |
| 520 | BzrNewError.__init__(self) | |
| 521 | self.branch = branch | |
| 522 | self.master = master | |
| 523 | self.remote = remote | |
| 524 | ||
| 1505.1.25
by John Arbash Meinel Updated pull. Now all paths which call set_revision_history maintain the branch invariant. All tests pass. | 525 | |
| 526 | class OverwriteBoundBranch(BzrNewError): | |
| 527 | """Cannot pull --overwrite to a branch which is bound %(branch)s""" | |
| 528 | def __init__(self, branch): | |
| 529 | BzrNewError.__init__(self) | |
| 530 | self.branch = branch | |
| 531 | ||
| 1505.1.29
by John Arbash Meinel Added special exceptions when unable to contact parent branch. Added tests for failure. bind() no longer updates the remote working tree | 532 | |
| 533 | class BoundBranchConnectionFailure(BzrNewError): | |
| 534 | """Unable to connect to target of bound branch %(branch)s => %(target)s: %(error)s""" | |
| 535 | def __init__(self, branch, target, error): | |
| 536 | BzrNewError.__init__(self) | |
| 537 | self.branch = branch | |
| 538 | self.target = target | |
| 539 | self.error = error | |
| 540 | ||
| 541 | ||
| 1185.16.116
by mbp at sourcefrog Move weave errors into bzrlib.errors and make consistent with new system. | 542 | class WeaveError(BzrNewError): | 
| 543 | """Error in processing weave: %(message)s""" | |
| 1563.2.10
by Robert Collins Change weave store to be a versioned store, using WeaveFiles which maintain integrity without needing explicit 'put' operations. | 544 | |
| 1185.16.116
by mbp at sourcefrog Move weave errors into bzrlib.errors and make consistent with new system. | 545 | def __init__(self, message=None): | 
| 546 | BzrNewError.__init__(self) | |
| 547 | self.message = message | |
| 548 | ||
| 549 | ||
| 550 | class WeaveRevisionAlreadyPresent(WeaveError): | |
| 551 | """Revision {%(revision_id)s} already present in %(weave)s""" | |
| 552 | def __init__(self, revision_id, weave): | |
| 1563.2.10
by Robert Collins Change weave store to be a versioned store, using WeaveFiles which maintain integrity without needing explicit 'put' operations. | 553 | |
| 1185.16.116
by mbp at sourcefrog Move weave errors into bzrlib.errors and make consistent with new system. | 554 | WeaveError.__init__(self) | 
| 555 | self.revision_id = revision_id | |
| 556 | self.weave = weave | |
| 557 | ||
| 558 | ||
| 559 | class WeaveRevisionNotPresent(WeaveError): | |
| 560 | """Revision {%(revision_id)s} not present in %(weave)s""" | |
| 1563.2.10
by Robert Collins Change weave store to be a versioned store, using WeaveFiles which maintain integrity without needing explicit 'put' operations. | 561 | |
| 1185.16.116
by mbp at sourcefrog Move weave errors into bzrlib.errors and make consistent with new system. | 562 | def __init__(self, revision_id, weave): | 
| 563 | WeaveError.__init__(self) | |
| 564 | self.revision_id = revision_id | |
| 565 | self.weave = weave | |
| 566 | ||
| 567 | ||
| 568 | class WeaveFormatError(WeaveError): | |
| 569 | """Weave invariant violated: %(what)s""" | |
| 1563.2.10
by Robert Collins Change weave store to be a versioned store, using WeaveFiles which maintain integrity without needing explicit 'put' operations. | 570 | |
| 1185.16.116
by mbp at sourcefrog Move weave errors into bzrlib.errors and make consistent with new system. | 571 | def __init__(self, what): | 
| 572 | WeaveError.__init__(self) | |
| 573 | self.what = what | |
| 574 | ||
| 575 | ||
| 576 | class WeaveParentMismatch(WeaveError): | |
| 577 | """Parents are mismatched between two revisions.""" | |
| 578 | ||
| 1393.2.1
by John Arbash Meinel Merged in split-storage-2 branch. Need to cleanup a little bit more still. | 579 | |
| 1185.50.23
by John Arbash Meinel Adding sha1 check when weave extracts a text. | 580 | class WeaveInvalidChecksum(WeaveError): | 
| 581 | """Text did not match it's checksum: %(message)s""" | |
| 582 | ||
| 583 | ||
| 1551.3.11
by Aaron Bentley Merge from Robert | 584 | class WeaveTextDiffers(WeaveError): | 
| 585 | """Weaves differ on text content. Revision: {%(revision_id)s}, %(weave_a)s, %(weave_b)s""" | |
| 586 | ||
| 587 | def __init__(self, revision_id, weave_a, weave_b): | |
| 588 | WeaveError.__init__(self) | |
| 589 | self.revision_id = revision_id | |
| 590 | self.weave_a = weave_a | |
| 591 | self.weave_b = weave_b | |
| 592 | ||
| 593 | ||
| 1534.7.158
by Aaron Bentley Merged John Meinel's integration | 594 | class WeaveTextDiffers(WeaveError): | 
| 595 | """Weaves differ on text content. Revision: {%(revision_id)s}, %(weave_a)s, %(weave_b)s""" | |
| 596 | ||
| 597 | def __init__(self, revision_id, weave_a, weave_b): | |
| 598 | WeaveError.__init__(self) | |
| 599 | self.revision_id = revision_id | |
| 600 | self.weave_a = weave_a | |
| 601 | self.weave_b = weave_b | |
| 602 | ||
| 603 | ||
| 1563.2.1
by Robert Collins Merge in a variation of the versionedfile api from versioned-file. | 604 | class VersionedFileError(BzrNewError): | 
| 605 | """Versioned file error.""" | |
| 606 | ||
| 607 | ||
| 608 | class RevisionNotPresent(VersionedFileError): | |
| 609 | """Revision {%(revision_id)s} not present in %(file_id)s.""" | |
| 610 | ||
| 611 | def __init__(self, revision_id, file_id): | |
| 612 | VersionedFileError.__init__(self) | |
| 613 | self.revision_id = revision_id | |
| 614 | self.file_id = file_id | |
| 615 | ||
| 616 | ||
| 617 | class RevisionAlreadyPresent(VersionedFileError): | |
| 618 | """Revision {%(revision_id)s} already present in %(file_id)s.""" | |
| 619 | ||
| 620 | def __init__(self, revision_id, file_id): | |
| 621 | VersionedFileError.__init__(self) | |
| 622 | self.revision_id = revision_id | |
| 623 | self.file_id = file_id | |
| 624 | ||
| 625 | ||
| 626 | class KnitError(BzrNewError): | |
| 627 | """Knit error""" | |
| 628 | ||
| 629 | ||
| 630 | class KnitHeaderError(KnitError): | |
| 631 | """Knit header error: %(badline)r unexpected""" | |
| 632 | ||
| 633 | def __init__(self, badline): | |
| 634 | KnitError.__init__(self) | |
| 635 | self.badline = badline | |
| 636 | ||
| 637 | ||
| 638 | class KnitCorrupt(KnitError): | |
| 639 | """Knit %(filename)s corrupt: %(how)s""" | |
| 640 | ||
| 641 | def __init__(self, filename, how): | |
| 642 | KnitError.__init__(self) | |
| 643 | self.filename = filename | |
| 644 | self.how = how | |
| 645 | ||
| 646 | ||
| 1185.31.12
by John Arbash Meinel Refactored the export code to make it easier to add new export formats. | 647 | class NoSuchExportFormat(BzrNewError): | 
| 648 | """Export format %(format)r not supported""" | |
| 649 | def __init__(self, format): | |
| 650 | BzrNewError.__init__(self) | |
| 651 | self.format = format | |
| 652 | ||
| 653 | ||
| 1185.11.9
by John Arbash Meinel Most tests pass, some problems with unavailable socket recv | 654 | class TransportError(BzrError): | 
| 655 | """All errors thrown by Transport implementations should derive | |
| 656 |     from this class.
 | |
| 657 |     """
 | |
| 658 | def __init__(self, msg=None, orig_error=None): | |
| 659 | if msg is None and orig_error is not None: | |
| 660 | msg = str(orig_error) | |
| 661 | BzrError.__init__(self, msg) | |
| 662 | self.msg = msg | |
| 663 | self.orig_error = orig_error | |
| 664 | ||
| 1551.2.1
by Aaron Bentley recommit 1527 PEP8 fixes | 665 | |
| 1185.11.9
by John Arbash Meinel Most tests pass, some problems with unavailable socket recv | 666 | # A set of semi-meaningful errors which can be thrown
 | 
| 667 | class TransportNotPossible(TransportError): | |
| 668 | """This is for transports where a specific function is explicitly not | |
| 669 |     possible. Such as pushing files to an HTTP server.
 | |
| 670 |     """
 | |
| 671 |     pass
 | |
| 672 | ||
| 1185.31.44
by John Arbash Meinel Cleaned up Exceptions for all transports. | 673 | |
| 674 | class ConnectionError(TransportError): | |
| 675 | """A connection problem prevents file retrieval. | |
| 1185.35.31
by Aaron Bentley Throw ConnectionError instead of NoSuchFile except when we get a 404 | 676 |     This does not indicate whether the file exists or not; it indicates that a
 | 
| 677 |     precondition for requesting the file was not met.
 | |
| 678 |     """
 | |
| 1185.31.44
by John Arbash Meinel Cleaned up Exceptions for all transports. | 679 | def __init__(self, msg=None, orig_error=None): | 
| 680 | TransportError.__init__(self, msg=msg, orig_error=orig_error) | |
| 681 | ||
| 1185.11.9
by John Arbash Meinel Most tests pass, some problems with unavailable socket recv | 682 | |
| 683 | class ConnectionReset(TransportError): | |
| 684 | """The connection has been closed.""" | |
| 685 |     pass
 | |
| 686 | ||
| 1551.2.1
by Aaron Bentley recommit 1527 PEP8 fixes | 687 | |
| 1185.14.10
by Aaron Bentley Commit aborts with conflicts in the tree. | 688 | class ConflictsInTree(BzrError): | 
| 689 | def __init__(self): | |
| 690 | BzrError.__init__(self, "Working tree has conflicts.") | |
| 1185.12.49
by Aaron Bentley Switched to ConfigObj | 691 | |
| 1551.2.1
by Aaron Bentley recommit 1527 PEP8 fixes | 692 | |
| 1185.12.49
by Aaron Bentley Switched to ConfigObj | 693 | class ParseConfigError(BzrError): | 
| 694 | def __init__(self, errors, filename): | |
| 695 | if filename is None: | |
| 696 | filename = "" | |
| 697 | message = "Error(s) parsing config file %s:\n%s" % \ | |
| 698 | (filename, ('\n'.join(e.message for e in errors))) | |
| 699 | BzrError.__init__(self, message) | |
| 1185.12.52
by Aaron Bentley Merged more config stuff from Robert | 700 | |
| 1551.2.1
by Aaron Bentley recommit 1527 PEP8 fixes | 701 | |
| 1442.1.58
by Robert Collins gpg signing of content | 702 | class SigningFailed(BzrError): | 
| 703 | def __init__(self, command_line): | |
| 704 | BzrError.__init__(self, "Failed to gpg sign data with command '%s'" | |
| 705 | % command_line) | |
| 1185.12.83
by Aaron Bentley Preliminary weave merge support | 706 | |
| 1551.2.1
by Aaron Bentley recommit 1527 PEP8 fixes | 707 | |
| 1185.12.83
by Aaron Bentley Preliminary weave merge support | 708 | class WorkingTreeNotRevision(BzrError): | 
| 709 | def __init__(self, tree): | |
| 710 | BzrError.__init__(self, "The working tree for %s has changed since" | |
| 711 |                           " last commit, but weave merge requires that it be"
 | |
| 712 | " unchanged." % tree.basedir) | |
| 1185.12.104
by Aaron Bentley Merged Martin's latest | 713 | |
| 1551.2.1
by Aaron Bentley recommit 1527 PEP8 fixes | 714 | |
| 1185.24.1
by Aaron Bentley Got reprocessing working | 715 | class CantReprocessAndShowBase(BzrNewError): | 
| 716 | """Can't reprocess and show base. | |
| 717 | Reprocessing obscures relationship of conflicting lines to base."""
 | |
| 1185.24.2
by Aaron Bentley Merge from mainline | 718 | |
| 1551.2.1
by Aaron Bentley recommit 1527 PEP8 fixes | 719 | |
| 1185.16.114
by mbp at sourcefrog Improved topological sort | 720 | class GraphCycleError(BzrNewError): | 
| 721 | """Cycle in graph %(graph)r""" | |
| 722 | def __init__(self, graph): | |
| 723 | BzrNewError.__init__(self) | |
| 724 | self.graph = graph | |
| 1185.35.1
by Aaron Bentley Implemented conflicts.restore | 725 | |
| 1505.1.23
by John Arbash Meinel Whitespace cleanup of bzrlib.errors | 726 | |
| 1185.35.1
by Aaron Bentley Implemented conflicts.restore | 727 | class NotConflicted(BzrNewError): | 
| 1185.35.4
by Aaron Bentley Implemented remerge | 728 | """File %(filename)s is not conflicted.""" | 
| 1534.3.1
by Robert Collins * bzrlib.osutils.safe_unicode now exists to provide parameter coercion | 729 | |
| 1185.35.1
by Aaron Bentley Implemented conflicts.restore | 730 | def __init__(self, filename): | 
| 731 | BzrNewError.__init__(self) | |
| 732 | self.filename = filename | |
| 1185.35.13
by Aaron Bentley Merged Martin | 733 | |
| 1505.1.23
by John Arbash Meinel Whitespace cleanup of bzrlib.errors | 734 | |
| 1492
by Robert Collins Support decoration of commands. | 735 | class MustUseDecorated(Exception): | 
| 736 | """A decorating function has requested its original command be used. | |
| 737 |     
 | |
| 738 |     This should never escape bzr, so does not need to be printable.
 | |
| 739 |     """
 | |
| 740 | ||
| 1505.1.23
by John Arbash Meinel Whitespace cleanup of bzrlib.errors | 741 | |
| 1185.35.42
by Aaron Bentley Fixed fetch to be safer wrt ghosts and corrupt branches | 742 | class MissingText(BzrNewError): | 
| 743 | """Branch %(base)s is missing revision %(text_revision)s of %(file_id)s""" | |
| 1534.3.1
by Robert Collins * bzrlib.osutils.safe_unicode now exists to provide parameter coercion | 744 | |
| 1185.35.42
by Aaron Bentley Fixed fetch to be safer wrt ghosts and corrupt branches | 745 | def __init__(self, branch, text_revision, file_id): | 
| 1534.3.1
by Robert Collins * bzrlib.osutils.safe_unicode now exists to provide parameter coercion | 746 | BzrNewError.__init__(self) | 
| 1185.35.42
by Aaron Bentley Fixed fetch to be safer wrt ghosts and corrupt branches | 747 | self.branch = branch | 
| 748 | self.base = branch.base | |
| 749 | self.text_revision = text_revision | |
| 750 | self.file_id = file_id | |
| 1534.7.5
by Aaron Bentley Got unique_add under test | 751 | |
| 1505.1.23
by John Arbash Meinel Whitespace cleanup of bzrlib.errors | 752 | |
| 1534.7.5
by Aaron Bentley Got unique_add under test | 753 | class DuplicateKey(BzrNewError): | 
| 754 | """Key %(key)s is already present in map""" | |
| 1534.7.6
by Aaron Bentley Added conflict handling | 755 | |
| 1587.1.6
by Robert Collins Update bound branch implementation to 0.8. | 756 | |
| 1534.7.6
by Aaron Bentley Added conflict handling | 757 | class MalformedTransform(BzrNewError): | 
| 1534.7.49
by Aaron Bentley Printed conflicts in MalformedTransform | 758 | """Tree transform is malformed %(conflicts)r""" | 
| 1534.7.24
by Aaron Bentley Merge from the mainline | 759 | |
| 1534.3.1
by Robert Collins * bzrlib.osutils.safe_unicode now exists to provide parameter coercion | 760 | |
| 761 | class BzrBadParameter(BzrNewError): | |
| 1185.65.29
by Robert Collins Implement final review suggestions. | 762 | """A bad parameter : %(param)s is not usable. | 
| 1534.3.1
by Robert Collins * bzrlib.osutils.safe_unicode now exists to provide parameter coercion | 763 |     
 | 
| 1185.65.29
by Robert Collins Implement final review suggestions. | 764 |     This exception should never be thrown, but it is a base class for all
 | 
| 765 |     parameter-to-function errors.
 | |
| 766 |     """
 | |
| 1534.3.1
by Robert Collins * bzrlib.osutils.safe_unicode now exists to provide parameter coercion | 767 | def __init__(self, param): | 
| 768 | BzrNewError.__init__(self) | |
| 769 | self.param = param | |
| 1534.7.32
by Aaron Bentley Got conflict handling working when conflicts involve existing files | 770 | |
| 1534.4.3
by Robert Collins Implement BranchTestProviderAdapter, so tests now run across all branch formats. | 771 | |
| 1185.65.29
by Robert Collins Implement final review suggestions. | 772 | class BzrBadParameterNotUnicode(BzrBadParameter): | 
| 773 | """Parameter %(param)s is neither unicode nor utf8.""" | |
| 1534.7.120
by Aaron Bentley PEP8 fixes | 774 | |
| 775 | ||
| 1534.7.32
by Aaron Bentley Got conflict handling working when conflicts involve existing files | 776 | class ReusingTransform(BzrNewError): | 
| 777 | """Attempt to reuse a transform that has already been applied.""" | |
| 1534.7.66
by Aaron Bentley Ensured we don't accidentally move the root directory | 778 | |
| 1534.7.120
by Aaron Bentley PEP8 fixes | 779 | |
| 1534.7.66
by Aaron Bentley Ensured we don't accidentally move the root directory | 780 | class CantMoveRoot(BzrNewError): | 
| 781 | """Moving the root directory is not supported at this time""" | |
| 1185.65.29
by Robert Collins Implement final review suggestions. | 782 | |
| 1534.7.120
by Aaron Bentley PEP8 fixes | 783 | |
| 1185.65.29
by Robert Collins Implement final review suggestions. | 784 | class BzrBadParameterNotString(BzrBadParameter): | 
| 785 | """Parameter %(param)s is not a string or unicode string.""" | |
| 1185.62.24
by John Arbash Meinel Changing the exception that sftp.py throws when it can't find paramiko, so that the test suite can handle it. | 786 | |
| 787 | ||
| 1534.4.44
by Robert Collins Make a new BzrDir format that uses a versioned branch format in a branch/ subdirectory. | 788 | class BzrBadParameterMissing(BzrBadParameter): | 
| 789 | """Parameter $(param)s is required but not present.""" | |
| 790 | ||
| 791 | ||
| 1666.1.6
by Robert Collins Make knit the default format. | 792 | class BzrBadParameterUnicode(BzrBadParameter): | 
| 1666.1.9
by Robert Collins Mark knits as no longer experimental. | 793 | """Parameter %(param)s is unicode but only byte-strings are permitted.""" | 
| 1666.1.6
by Robert Collins Make knit the default format. | 794 | |
| 795 | ||
| 796 | class BzrBadParameterContainsNewline(BzrBadParameter): | |
| 1666.1.9
by Robert Collins Mark knits as no longer experimental. | 797 | """Parameter %(param)s contains a newline.""" | 
| 1666.1.6
by Robert Collins Make knit the default format. | 798 | |
| 799 | ||
| 1185.62.24
by John Arbash Meinel Changing the exception that sftp.py throws when it can't find paramiko, so that the test suite can handle it. | 800 | class DependencyNotPresent(BzrNewError): | 
| 1540.3.7
by Martin Pool Prepare to select a transport depending on what dependencies can be satisfied. | 801 | """Unable to import library "%(library)s": %(error)s""" | 
| 1185.62.24
by John Arbash Meinel Changing the exception that sftp.py throws when it can't find paramiko, so that the test suite can handle it. | 802 | |
| 803 | def __init__(self, library, error): | |
| 804 | BzrNewError.__init__(self, library=library, error=error) | |
| 805 | ||
| 806 | ||
| 807 | class ParamikoNotPresent(DependencyNotPresent): | |
| 808 | """Unable to import paramiko (required for sftp support): %(error)s""" | |
| 809 | ||
| 810 | def __init__(self, error): | |
| 811 | DependencyNotPresent.__init__(self, 'paramiko', error) | |
| 812 | ||
| 813 | ||
| 1534.4.3
by Robert Collins Implement BranchTestProviderAdapter, so tests now run across all branch formats. | 814 | class UninitializableFormat(BzrNewError): | 
| 815 | """Format %(format)s cannot be initialised by this version of bzr.""" | |
| 816 | ||
| 817 | def __init__(self, format): | |
| 818 | BzrNewError.__init__(self) | |
| 819 | self.format = format | |
| 1551.3.4
by Aaron Bentley Implemented default command options | 820 | |
| 1534.7.156
by Aaron Bentley PEP8 fixes | 821 | |
| 1534.7.130
by Aaron Bentley More conflict handling, test porting | 822 | class NoDiff3(BzrNewError): | 
| 823 | """Diff3 is not installed on this machine.""" | |
| 1534.7.162
by Aaron Bentley Handle failures creating/deleting the Limbo directory | 824 | |
| 825 | ||
| 826 | class ExistingLimbo(BzrNewError): | |
| 827 | """This tree contains left-over files from a failed operation. | |
| 828 |     Please examine %(limbo_dir)s to see if it contains any files you wish to
 | |
| 829 |     keep, and delete it when you are done.
 | |
| 830 |     """
 | |
| 831 | def __init__(self, limbo_dir): | |
| 832 | BzrNewError.__init__(self) | |
| 833 | self.limbo_dir = limbo_dir | |
| 834 | ||
| 835 | ||
| 836 | class ImmortalLimbo(BzrNewError): | |
| 837 | """Unable to delete transform temporary directory $(limbo_dir)s. | |
| 838 |     Please examine %(limbo_dir)s to see if it contains any files you wish to
 | |
| 839 |     keep, and delete it when you are done.
 | |
| 840 |     """
 | |
| 841 | def __init__(self, limbo_dir): | |
| 842 | BzrNewError.__init__(self) | |
| 843 | self.limbo_dir = limbo_dir | |
| 1534.7.163
by Aaron Bentley Merge from Robert [Fails tests] | 844 | |
| 845 | ||
| 1508.1.22
by Robert Collins implement out of date working tree checks in commit. | 846 | class OutOfDateTree(BzrNewError): | 
| 847 | """Working tree is out of date, please run 'bzr update'.""" | |
| 1508.1.25
by Robert Collins Update per review comments. | 848 | |
| 849 | def __init__(self, tree): | |
| 850 | BzrNewError.__init__(self) | |
| 851 | self.tree = tree | |
| 1534.7.196
by Aaron Bentley Switched to Rio format for merge-modified list | 852 | |
| 1563.2.22
by Robert Collins Move responsibility for repository.has_revision into RevisionStore | 853 | |
| 1534.7.196
by Aaron Bentley Switched to Rio format for merge-modified list | 854 | class MergeModifiedFormatError(BzrNewError): | 
| 855 | """Error in merge modified format""" | |
| 1534.7.200
by Aaron Bentley Merge from mainline | 856 | |
| 857 | ||
| 1534.10.7
by Aaron Bentley Added tests for bad conflict lists | 858 | class ConflictFormatError(BzrNewError): | 
| 859 | """Format error in conflict listings""" | |
| 860 | ||
| 861 | ||
| 1570.1.13
by Robert Collins Check for incorrect revision parentage in the weave during revision access. | 862 | class CorruptRepository(BzrNewError): | 
| 863 | """An error has been detected in the repository %(repo_path)s. | |
| 864 | Please run bzr reconcile on this repository."""
 | |
| 865 | ||
| 866 | def __init__(self, repo): | |
| 867 | BzrNewError.__init__(self) | |
| 868 | self.repo_path = repo.bzrdir.root_transport.base | |
| 1587.1.6
by Robert Collins Update bound branch implementation to 0.8. | 869 | |
| 870 | ||
| 871 | class UpgradeRequired(BzrNewError): | |
| 872 | """To use this feature you must upgrade your branch at %(path)s.""" | |
| 873 | ||
| 874 | def __init__(self, path): | |
| 875 | BzrNewError.__init__(self) | |
| 876 | self.path = path | |
| 877 | ||
| 1587.1.8
by Robert Collins Local commits on unbound branches fail. | 878 | |
| 879 | class LocalRequiresBoundBranch(BzrNewError): | |
| 880 | """Cannot perform local-only commits on unbound branches.""" | |
| 1594.1.1
by Robert Collins Introduce new bzr progress bar api. ui_factory.nested_progress_bar. | 881 | |
| 882 | ||
| 883 | class MissingProgressBarFinish(BzrNewError): | |
| 884 | """A nested progress bar was not 'finished' correctly.""" | |
| 1534.10.8
by Aaron Bentley Implemented conflict_lines in terms of old system on WorkingTree | 885 | |
| 886 | ||
| 887 | class UnsupportedOperation(BzrNewError): | |
| 888 | """The method %(mname)s is not supported on objects of type %(tname)s.""" | |
| 889 | def __init__(self, method, method_self): | |
| 890 | self.method = method | |
| 891 | self.mname = method.__name__ | |
| 892 | self.tname = type(method_self).__name__ | |
| 1558.15.1
by Aaron Bentley Add text_file function | 893 | |
| 894 | ||
| 895 | class BinaryFile(BzrNewError): | |
| 896 | """File is binary but should be text.""" | |
| 1551.2.55
by abentley Fix fileid involed tests on win32 (by skipping them for unescaped weave formats) | 897 | |
| 898 | ||
| 899 | class IllegalPath(BzrNewError): | |
| 900 | """The path %(path)s is not permitted on this platform""" | |
| 901 | ||
| 902 | def __init__(self, path): | |
| 903 | BzrNewError.__init__(self) | |
| 904 | self.path = path |