@@ -563,7 +563,8 @@ def _set_alternates(self, alts):
563563 alternates = property (_get_alternates , _set_alternates ,
564564 doc = "Retrieve a list of alternates paths or set a list paths to be used as alternates" )
565565
566- def is_dirty (self , index = True , working_tree = True , untracked_files = False ):
566+ def is_dirty (self , index = True , working_tree = True , untracked_files = False ,
567+ consider_submodules = True ):
567568 """
568569 :return:
569570 ``True``, the repository is considered dirty. By default it will react
@@ -575,7 +576,9 @@ def is_dirty(self, index=True, working_tree=True, untracked_files=False):
575576 return False
576577
577578 # start from the one which is fastest to evaluate
578- default_args = ('--abbrev=40' , '--full-index' , '--raw' )
579+ default_args = ['--abbrev=40' , '--full-index' , '--raw' ]
580+ if not consider_submodules :
581+ default_args .append ('--ignore-submodules' )
579582 if index :
580583 # diff index against HEAD
581584 if isfile (self .index .path ) and \
@@ -588,7 +591,10 @@ def is_dirty(self, index=True, working_tree=True, untracked_files=False):
588591 return True
589592 # END working tree handling
590593 if untracked_files :
591- if len (self .untracked_files ):
594+ kwargs = {}
595+ if not consider_submodules :
596+ kwargs ['ignore_submodules' ] = True
597+ if len (self ._get_untracked_files (** kwargs )):
592598 return True
593599 # END untracked files
594600 return False
@@ -604,10 +610,14 @@ def untracked_files(self):
604610
605611 :note:
606612 ignored files will not appear here, i.e. files mentioned in .gitignore"""
613+ return self ._get_untracked_files ()
614+
615+ def _get_untracked_files (self , ** kwargs ):
607616 # make sure we get all files, no only untracked directores
608617 proc = self .git .status (porcelain = True ,
609618 untracked_files = True ,
610- as_process = True )
619+ as_process = True ,
620+ ** kwargs )
611621 # Untracked files preffix in porcelain mode
612622 prefix = "?? "
613623 untracked_files = list ()
0 commit comments