From: Richard Hansen <rhansen@bbn.com>
To: Jess Austin <jess.austin@gmail.com>, git@vger.kernel.org
Cc: szeder@ira.uka.de
Subject: Re: [PATCH] git-prompt.sh: Omit prompt for ignored directories
Date: Wed, 08 Oct 2014 17:12:07 -0400 [thread overview]
Message-ID: <5435A8A7.2030008@bbn.com> (raw)
In-Reply-To: <1412795040-19267-1-git-send-email-jess.austin@gmail.com>
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@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
>
next prev parent reply other threads:[~2014-10-08 21:12 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-08 19:04 [PATCH] git-prompt.sh: Omit prompt for ignored directories Jess Austin
2014-10-08 21:12 ` Richard Hansen [this message]
[not found] ` <CANp8Xb8ETG-ZFCqrOk=f-RbxtRxehBmAR1O5ozLH80zimWq_Gw@mail.gmail.com>
2014-10-08 21:37 ` Fwd: " Jess Austin
2014-10-09 5:37 ` Richard Hansen
2014-10-09 10:27 ` Jess Austin
2014-10-09 22:09 ` Richard Hansen
2014-10-14 2:32 ` [PATCH] git-prompt.sh: Hide prompt for ignored pwd Jess Austin
2014-10-14 18:47 ` Johannes Sixt
2014-10-14 19:08 ` Richard Hansen
2014-10-14 19:21 ` Richard Hansen
2014-10-15 4:06 ` [PATCH] git-prompt.sh: Option to hide " Jess Austin
2014-10-15 20:28 ` Richard Hansen
2015-01-05 7:03 ` [PATCH v4] " Richard Hansen
2015-01-06 23:31 ` Junio C Hamano
2015-01-07 1:22 ` [PATCH v5 0/2] " Richard Hansen
2015-01-07 1:22 ` [PATCH v5 1/2] git-prompt.sh: if pc mode, immediately set PS1 to a plain prompt Richard Hansen
2015-01-14 11:45 ` [PATCH v5 1/2] git-prompt.sh: if pc mode, immediately set PS1 SZEDER Gábor
2015-01-07 1:22 ` [PATCH v5 2/2] git-prompt.sh: Option to hide prompt for ignored pwd Richard Hansen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5435A8A7.2030008@bbn.com \
--to=rhansen@bbn.com \
--cc=git@vger.kernel.org \
--cc=jess.austin@gmail.com \
--cc=szeder@ira.uka.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.