On 2014-10-08 15:04, Jess Austin wrote: > Introduce a new environmental variable, GIT_PS1_OMITIGNORED, which > tells __git_ps1 to display nothing when the current directory is > set (e.g. via .gitignore) to be ignored by git. In the absence of > GIT_PS1_OMITIGNORED this change has no effect. > > Many people manage e.g. dotfiles in their home directory with git. > This causes the prompt generated by __git_ps1 to refer to that "top > level" repo while working in any descendant directory. That can be > distracting, so this patch helps one shut off that noise. Interesting idea, though I would prefer this to be configurable on a per-repository basis. (I wouldn't want to hide the prompt in any repository besides my home repository.) I'm not a big fan of the name "OMITIGNORED" (it's not immediately obvious what this means), but I can't think of anything better off the top of my head... -Richard > > Signed-off-by: Jess Austin <jess.austin@xxxxxxxxx> > --- > contrib/completion/git-prompt.sh | 9 +++++++++ > t/t9903-bash-prompt.sh | 21 +++++++++++++++++++++ > 2 files changed, 30 insertions(+) > > diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh > index c5473dc..6a26cb4 100644 > --- a/contrib/completion/git-prompt.sh > +++ b/contrib/completion/git-prompt.sh > @@ -84,6 +84,10 @@ > # GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on > # the colored output of "git status -sb" and are available only when > # using __git_ps1 for PROMPT_COMMAND or precmd. > +# > +# If you would like __git_ps1 to do nothing in the case when the current > +# directory is set up to be ignored by git, then set GIT_PS1_OMITIGNORED > +# to a nonempty value. > > # check whether printf supports -v > __git_printf_supports_v= > @@ -501,6 +505,11 @@ __git_ps1 () > local f="$w$i$s$u" > local gitstring="$c$b${f:+$z$f}$r$p" > > + if [ -n "$(git check-ignore .)" ] && [ -n "${GIT_PS1_OMITIGNORED}" ] > + then > + printf_format="" > + fi > + > if [ $pcmode = yes ]; then > if [ "${__git_printf_supports_v-}" != yes ]; then > gitstring=$(printf -- "$printf_format" "$gitstring") > diff --git a/t/t9903-bash-prompt.sh b/t/t9903-bash-prompt.sh > index 9150984..55bcb6b 100755 > --- a/t/t9903-bash-prompt.sh > +++ b/t/t9903-bash-prompt.sh > @@ -35,6 +35,8 @@ test_expect_success 'setup for prompt tests' ' > git commit -m "another b2" file && > echo 000 >file && > git commit -m "yet another b2" file && > + mkdir ignored_dir && > + echo "ignored_dir/" >> .gitignore && > git checkout master > ' > > @@ -588,4 +590,23 @@ test_expect_success 'prompt - zsh color pc mode' ' > test_cmp expected "$actual" > ' > > +test_expect_success 'prompt - prompt omitted in ignored directory' ' > + printf "" >expected && > + ( > + cd ignored_dir && > + GIT_PS1_OMITIGNORED=y && > + __git_ps1 >"$actual" > + ) && > + test_cmp expected "$actual" > +' > + > +test_expect_success 'prompt - prompt not omitted without GIT_PS1_OMITIGNORED' ' > + printf " (master)" >expected && > + ( > + cd ignored_dir && > + __git_ps1 >"$actual" > + ) && > + test_cmp expected "$actual" > +' > + > test_done > -- 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