Re: [PATCH] completion: Add PS1 configuration for submodules
- From
SZEDER Gábor <szeder@ira.uka.de>
- Date
- Dec 7, 2010, 09:40 UTC
- Message-ID
- <20101207094057.GA6176@neumann>
- In-Reply-To
- <1291677763-55385-1-git-send-email-scott@appden.com>
Hi Scott,
On Mon, Dec 06, 2010 at 03:22:43PM -0800, Scott Kyle wrote:
Show 23 quoted lines
> 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@appden.com> > --- > 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.
Show 17 quoted lines
> #
> # 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
>
>