git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] git-prompt.sh: Omit prompt for ignored directories

From
RHRichard Hansen <rhansen@bbn.com>
Date
Oct 8, 2014, 21:12 UTC
Message-ID
<5435A8A7.2030008@bbn.com>
In-Reply-To
<1412795040-19267-1-git-send-email-jess.austin@gmail.com>
On 2014-10-08 15:04, Jess Austin wrote:
Show 9 quoted lines
> 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
Show 72 quoted lines
> 
> Signed-off-by: Jess Austin <jess.austin@gmail.com>
> ---
>  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
> 
Previous: Jess AustinNext: Jess Austin
Message 2 of 18 in “git-prompt.sh: Omit prompt for ignored directories”
  1. git-prompt.sh: Omit prompt for ignored directoriesJess Austin, Oct 8, 2014
  2. Richard HansenOct 8, 2014
  3. Fwd: [PATCH] git-prompt.sh: Omit prompt for ignored directoriesJess Austin, Oct 8, 2014
  4. Richard HansenOct 9, 2014
  5. Jess AustinOct 9, 2014
  6. Richard HansenOct 9, 2014
  7. git-prompt.sh: Hide prompt for ignored pwdJess Austin, Oct 14, 2014
  8. Johannes SixtOct 14, 2014
  9. Richard HansenOct 14, 2014
  10. Richard HansenOct 14, 2014
  11. git-prompt.sh: Option to hide prompt for ignored pwdJess Austin, Oct 15, 2014
  12. Richard HansenOct 15, 2014
  13. git-prompt.sh: Option to hide prompt for ignored pwdRichard Hansen, Jan 5, 2015
  14. Junio C HamanoJan 6, 2015
  15. 0/2 git-prompt.sh: Option to hide prompt for ignored pwdRichard Hansen, Jan 7, 2015
  16. 1/2 git-prompt.sh: if pc mode, immediately set PS1 to a plain promptRichard Hansen, Jan 7, 2015
  17. SZEDER GáborJan 14, 2015
  18. 2/2 git-prompt.sh: Option to hide prompt for ignored pwdRichard Hansen, Jan 7, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.