Hi Scott, On Mon, Dec 06, 2010 at 03:22:43PM -0800, Scott Kyle wrote: > For those who often work on repositories with submodules, the dirty > indicator for unstaged changes will almost always show because development > is simultaneously happening on those submodules. The config option > diff.ignoreSubmodules is not appropriate for this use because it has larger > implications. > > Signed-off-by: Scott Kyle <scott@xxxxxxxxxx> > --- > contrib/completion/git-completion.bash | 7 +++++-- > 1 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash > index 604fa79..539bcb1 100755 > --- a/contrib/completion/git-completion.bash > +++ b/contrib/completion/git-completion.bash > @@ -37,7 +37,9 @@ > # value, unstaged (*) and staged (+) changes will be shown next > # to the branch name. You can configure this per-repository > # with the bash.showDirtyState variable, which defaults to true > -# once GIT_PS1_SHOWDIRTYSTATE is enabled. > +# once GIT_PS1_SHOWDIRTYSTATE is enabled. You can also set > +# GIT_PS1_IGNORESUBMODULES to a value that git diff understands > +# to adjust the behavior of the dirty state indicator. git diff "understands" a lot of things, therefore I'd like to be a bit more specific here by mentioning the --ignore-submodules= option: +# once GIT_PS1_SHOWDIRTYSTATE is enabled. You can also set +# GIT_PS1_IGNORESUBMODULES to a value that git diff +# --ignore-submodules= understands to adjust the behavior of the +# dirty state indicator. But it might be just me being unfamiliar with submodules. Otherwise it looks good and reasonable to me. > # > # You can also see if currently something is stashed, by setting > # GIT_PS1_SHOWSTASHSTATE to a nonempty value. If something is stashed, > @@ -286,7 +288,8 @@ __git_ps1 () > elif [ "true" = "$(git rev-parse --is-inside-work-tree 2>/dev/null)" ]; then > if [ -n "${GIT_PS1_SHOWDIRTYSTATE-}" ]; then > if [ "$(git config --bool bash.showDirtyState)" != "false" ]; then > - git diff --no-ext-diff --quiet --exit-code || w="*" > + local ignore_submodules=${GIT_PS1_IGNORESUBMODULES+"--ignore-submodules=$GIT_PS1_IGNORESUBMODULES"} > + git diff $ignore_submodules --no-ext-diff --quiet --exit-code || w="*" > if git rev-parse --quiet --verify HEAD >/dev/null; then > git diff-index --cached --quiet HEAD -- || i="+" > else > -- > 1.7.3.3.574.g98527 > > -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html