diff options
Diffstat (limited to 'lib/git/errors.py')
-rw-r--r-- | lib/git/errors.py | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/lib/git/errors.py b/lib/git/errors.py index 6d926500..5fe99915 100644 --- a/lib/git/errors.py +++ b/lib/git/errors.py @@ -3,16 +3,16 @@ # # This module is part of GitPython and is released under # the BSD License: http://www.opensource.org/licenses/bsd-license.php -""" -Module containing all exceptions thrown througout the git package, -""" +""" Module containing all exceptions thrown througout the git package, """ class InvalidGitRepositoryError(Exception): """ Thrown if the given repository appears to have an invalid format. """ + class NoSuchPathError(OSError): """ Thrown if a path could not be access by the system. """ + class GitCommandError(Exception): """ Thrown if execution of the git command fails with non-zero status code. """ def __init__(self, command, status, stderr=None): @@ -24,3 +24,25 @@ class GitCommandError(Exception): return ("'%s' returned exit status %i: %s" % (' '.join(str(i) for i in self.command), self.status, self.stderr)) + +class CheckoutError( Exception ): + """Thrown if a file could not be checked out from the index as it contained + changes. + + The .failed_files attribute contains a list of relative paths that failed + to be checked out as they contained changes that did not exist in the index. + + The .failed_reasons attribute contains a string informing about the actual + cause of the issue. + + The .valid_files attribute contains a list of relative paths to files that + were checked out successfully and hence match the version stored in the + index""" + def __init__(self, message, failed_files, valid_files, failed_reasons): + Exception.__init__(self, message) + self.failed_files = failed_files + self.failed_reasons = failed_reasons + self.valid_files = valid_files + + def __str__(self): + return Exception.__str__(self) + ":%s" % self.failed_files |