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