From 7cc3a32bff9b283bf5eea139b92cbfddf3b75de5 Mon Sep 17 00:00:00 2001
From: Wang Guan <momocraft@gmail.com>
Date: Thu, 31 Oct 2013 05:46:27 +0900
Subject: [PATCH] Add an option about git submodules to ignore

$GIT_STATUS_IGNORE_SUBMODULES can be used to specify handling of
submodules. It can be:
not set : ignore dirty submodules (this was default zsh behavior)
"git"   : do not use "--ignore-submodules" and let git choose,
          this obeys setting in .gitmodules
other   : comes into "--ignore-submodules=$GIT_STATUS_IGNORE_SUBMODULES"
---
 lib/git.zsh | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/lib/git.zsh b/lib/git.zsh
index 640561e97..e8ef0d78d 100644
--- a/lib/git.zsh
+++ b/lib/git.zsh
@@ -17,6 +17,19 @@ function parse_git_dirty() {
     if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]; then
       FLAGS+='--untracked-files=no'
     fi
+    case "$GIT_STATUS_IGNORE_SUBMODULES" in
+      "")
+        # if unset: ignore dirty submodules
+        FLAGS+="--ignore-submodules=dirty"
+        ;;
+      "git")
+        # let git decide (this respects per-repo config in .gitmodules)
+        ;;
+      *)
+        # other values are passed to --ignore-submodules
+        FLAGS+="--ignore-submodules=$GIT_STATUS_IGNORE_SUBMODULES"
+        ;;
+    esac
     STATUS=$(command git status ${FLAGS} 2> /dev/null | tail -n1)
   fi
   if [[ -n $STATUS ]]; then
-- 
2.21.0