summaryrefslogtreecommitdiff
path: root/lib/git.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'lib/git.zsh')
-rw-r--r--lib/git.zsh12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/git.zsh b/lib/git.zsh
index 640561e97..2054fe272 100644
--- a/lib/git.zsh
+++ b/lib/git.zsh
@@ -12,11 +12,21 @@ function git_prompt_info() {
function parse_git_dirty() {
local STATUS
local -a FLAGS
- FLAGS=('--porcelain' '--ignore-submodules=dirty')
+ FLAGS=('--porcelain')
if [[ "$(command git config --get oh-my-zsh.hide-dirty)" != "1" ]]; then
if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]; then
FLAGS+='--untracked-files=no'
fi
+ case "$GIT_STATUS_IGNORE_SUBMODULES" in
+ git)
+ # let git decide (this respects per-repo config in .gitmodules)
+ ;;
+ *)
+ # if unset: ignore dirty submodules
+ # other values are passed to --ignore-submodules
+ FLAGS+="--ignore-submodules=${GIT_STATUS_IGNORE_SUBMODULES:-dirty}"
+ ;;
+ esac
STATUS=$(command git status ${FLAGS} 2> /dev/null | tail -n1)
fi
if [[ -n $STATUS ]]; then