##// END OF EJS Templates
strip: make repair.strip transactional to avoid repository corruption...
strip: make repair.strip transactional to avoid repository corruption Uses a transaction instance from the local repository to journal the truncation of revlog files, such that if a strip only partially completes, hg recover will be able to finish the truncate of all the files. The potential unbundling of changes that have been backed up to be restored later will, in case of an error, have to be unbundled manually. The difference is that it will be possible to recover the repository state so the unbundle can actually succeed.

File last commit:

r7947:a454eeb1 default
r8073:e8a28556 default
Show More
error.py
67 lines | 1.9 KiB | text/x-python | PythonLexer
Matt Mackall
errors: move revlog errors...
r7633 """
error.py - Mercurial exceptions
This allows us to catch exceptions at higher levels without forcing imports
Copyright 2005-2008 Matt Mackall <mpm@selenic.com>
This software may be used and distributed according to the terms
of the GNU General Public License, incorporated herein by reference.
"""
# Do not import anything here, please
class RevlogError(Exception):
pass
class LookupError(RevlogError, KeyError):
def __init__(self, name, index, message):
self.name = name
if isinstance(name, str) and len(name) == 20:
from node import short
name = short(name)
RevlogError.__init__(self, '%s@%s: %s' % (index, name, message))
def __str__(self):
return RevlogError.__str__(self)
Matt Mackall
error: move ParseError
r7636
class ParseError(Exception):
"""Exception raised on errors in parsing the command line."""
Matt Mackall
error: move repo errors...
r7637
class RepoError(Exception):
pass
class CapabilityError(RepoError):
pass
Matt Mackall
error: move lock errors...
r7640
class LockError(IOError):
def __init__(self, errno, strerror, filename, desc):
IOError.__init__(self, errno, strerror, filename)
self.desc = desc
class LockHeld(LockError):
def __init__(self, errno, filename, desc, locker):
LockError.__init__(self, errno, 'Lock held', filename, desc)
self.locker = locker
class LockUnavailable(LockError):
pass
Matt Mackall
error: move UnexpectedOutput (now ResponseError)
r7641
class ResponseError(Exception):
"""Raised to print an error with part of output and exit."""
Matt Mackall
error: move UnknownCommand and AmbiguousCommand
r7643 class UnknownCommand(Exception):
"""Exception raised if command is not in the command table."""
class AmbiguousCommand(Exception):
"""Exception raised if command shortcut matches more than one command."""
Matt Mackall
error: move SignalInterrupt...
r7644 # derived from KeyboardInterrupt to simplify some breakout code
class SignalInterrupt(KeyboardInterrupt):
"""Exception raised on SIGTERM and SIGHUP."""
Matt Mackall
error: move SignatureError
r7646
class SignatureError(Exception):
pass
Matt Mackall
move util.Abort to error.py
r7947
class Abort(Exception):
"""Raised if a command needs to print an error and exit."""