33#
44# This module is part of GitPython and is released under
55# the BSD License: http://www.opensource.org/licenses/bsd-license.php
6- """
7- Module containing all exceptions thrown througout the git package,
8- """
6+ """ Module containing all exceptions thrown througout the git package, """
97
108class InvalidGitRepositoryError (Exception ):
119 """ Thrown if the given repository appears to have an invalid format. """
1210
11+
1312class NoSuchPathError (OSError ):
1413 """ Thrown if a path could not be access by the system. """
1514
15+
1616class GitCommandError (Exception ):
1717 """ Thrown if execution of the git command fails with non-zero status code. """
1818 def __init__ (self , command , status , stderr = None ):
@@ -24,3 +24,25 @@ def __str__(self):
2424 return ("'%s' returned exit status %i: %s" %
2525 (' ' .join (str (i ) for i in self .command ), self .status , self .stderr ))
2626
27+
28+ class CheckoutError ( Exception ):
29+ """Thrown if a file could not be checked out from the index as it contained
30+ changes.
31+
32+ The .failed_files attribute contains a list of relative paths that failed
33+ to be checked out as they contained changes that did not exist in the index.
34+
35+ The .failed_reasons attribute contains a string informing about the actual
36+ cause of the issue.
37+
38+ The .valid_files attribute contains a list of relative paths to files that
39+ were checked out successfully and hence match the version stored in the
40+ index"""
41+ def __init__ (self , message , failed_files , valid_files , failed_reasons ):
42+ Exception .__init__ (self , message )
43+ self .failed_files = failed_files
44+ self .failed_reasons = failed_reasons
45+ self .valid_files = valid_files
46+
47+ def __str__ (self ):
48+ return Exception .__str__ (self ) + ":%s" % self .failed_files
0 commit comments