From c3c70daba7a3d195d22ded363c9915b5433ce054 Mon Sep 17 00:00:00 2001 From: Zaar Hai Date: Mon, 1 Aug 2016 14:33:43 +0300 Subject: is_dirty supports path. Fixes #482. --- git/repo/base.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'git/repo/base.py') diff --git a/git/repo/base.py b/git/repo/base.py index 282dfc15..5d0a6d30 100644 --- a/git/repo/base.py +++ b/git/repo/base.py @@ -585,7 +585,7 @@ class Repo(object): doc="Retrieve a list of alternates paths or set a list paths to be used as alternates") def is_dirty(self, index=True, working_tree=True, untracked_files=False, - submodules=True): + submodules=True, path=None): """ :return: ``True``, the repository is considered dirty. By default it will react @@ -600,6 +600,8 @@ class Repo(object): default_args = ['--abbrev=40', '--full-index', '--raw'] if not submodules: default_args.append('--ignore-submodules') + if path: + default_args.append(path) if index: # diff index against HEAD if isfile(self.index.path) and \ @@ -612,7 +614,7 @@ class Repo(object): return True # END working tree handling if untracked_files: - if len(self._get_untracked_files(ignore_submodules=not submodules)): + if len(self._get_untracked_files(path, ignore_submodules=not submodules)): return True # END untracked files return False @@ -633,9 +635,10 @@ class Repo(object): consider caching it yourself.""" return self._get_untracked_files() - def _get_untracked_files(self, **kwargs): + def _get_untracked_files(self, *args, **kwargs): # make sure we get all files, no only untracked directores - proc = self.git.status(porcelain=True, + proc = self.git.status(*args, + porcelain=True, untracked_files=True, as_process=True, **kwargs) -- cgit v1.2.1