7633
|
1 """ |
|
2 error.py - Mercurial exceptions |
|
3 |
|
4 This allows us to catch exceptions at higher levels without forcing imports |
|
5 |
|
6 Copyright 2005-2008 Matt Mackall <mpm@selenic.com> |
|
7 |
|
8 This software may be used and distributed according to the terms |
|
9 of the GNU General Public License, incorporated herein by reference. |
|
10 """ |
|
11 |
|
12 # Do not import anything here, please |
|
13 |
|
14 class RevlogError(Exception): |
|
15 pass |
|
16 |
|
17 class LookupError(RevlogError, KeyError): |
|
18 def __init__(self, name, index, message): |
|
19 self.name = name |
|
20 if isinstance(name, str) and len(name) == 20: |
|
21 from node import short |
|
22 name = short(name) |
|
23 RevlogError.__init__(self, '%s@%s: %s' % (index, name, message)) |
|
24 |
|
25 def __str__(self): |
|
26 return RevlogError.__str__(self) |
7636
|
27 |
|
28 class ParseError(Exception): |
|
29 """Exception raised on errors in parsing the command line.""" |
7637
|
30 |
|
31 class RepoError(Exception): |
|
32 pass |
|
33 |
|
34 class CapabilityError(RepoError): |
|
35 pass |
7640
|
36 |
|
37 class LockError(IOError): |
|
38 def __init__(self, errno, strerror, filename, desc): |
|
39 IOError.__init__(self, errno, strerror, filename) |
|
40 self.desc = desc |
|
41 |
|
42 class LockHeld(LockError): |
|
43 def __init__(self, errno, filename, desc, locker): |
|
44 LockError.__init__(self, errno, 'Lock held', filename, desc) |
|
45 self.locker = locker |
|
46 |
|
47 class LockUnavailable(LockError): |
|
48 pass |