From: "SZEDER Gábor" <szeder.dev@gmail.com>
To: Edward D'Souza via GitGitGadget <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
Edward D'Souza <edsouza@gmail.com>
Subject: Re: [PATCH 1/1] git-prompt.sh: update shell variable instructions.
Date: Wed, 5 Jun 2019 18:06:56 +0200 [thread overview]
Message-ID: <20190605160656.GU951@szeder.dev> (raw)
In-Reply-To: <0074d3da7ad402043d58ebb107435ce955a347f5.1559747165.git.gitgitgadget@gmail.com>
On Wed, Jun 05, 2019 at 08:06:07AM -0700, Edward D'Souza via GitGitGadget wrote:
> From: Edward D'Souza <edsouza@gmail.com>
>
> Clarify the need to set variables like GIT_PS1_SHOWDIRTYSTATE before
> "source ~/.git-prompt.sh" is executed in your shell init process.
>
> If you set these preferences too late i.e. after .git-prompt.sh executes,
> they will silently fail to take effect.
I can't reproduce this. It doesn't matter when these variables are
set, because __git_ps1() checks them each time it is invoked, it
always has.
$ echo $GIT_PS1_SHOWSTASHSTATE $GIT_PS1_SHOWDIRTYSTATE $GIT_PS1_SHOWUNTRACKEDFILES
/tmp/repo$ git init
Initialized empty Git repository in /tmp/repo/.git/
/tmp/repo (master)$ echo 1 >file
/tmp/repo (master)$ git add file
/tmp/repo (master)$ git commit -q -m initial
/tmp/repo (master)$ echo 2 >file
/tmp/repo (master)$ git stash
Saved working directory and index state WIP on master: 5ae0413 initial
/tmp/repo (master)$ echo 3 >file
/tmp/repo (master)$ git add file
/tmp/repo (master)$ echo 4 >file
/tmp/repo (master)$ >untracked
/tmp/repo (master)$ GIT_PS1_SHOWSTASHSTATE=y
/tmp/repo (master $)$ GIT_PS1_SHOWDIRTYSTATE=y
/tmp/repo (master *+$)$ GIT_PS1_SHOWUNTRACKEDFILES=y
/tmp/repo (master *+$%)$ unset GIT_PS1_SHOWSTASHSTATE GIT_PS1_SHOWDIRTYSTATE GIT_PS1_SHOWUNTRACKEDFILES
/tmp/repo (master)$
Note that some of these status indicators are controlled not only by
environment variables but by corresponding 'bash.<indicator>' config
variables as well. Even if the env var is set to enable the status
indicator globally, the config setting can still override that to
allow disabling potentially expensive indicators on a per-repo basis.
Is it possible that you had e.g. 'bash.showDirtyState = false' in your
config somewhere?
Anyway, even if the issue were real, this patch goes in the wrong
direction: instead of requiring a workaround from users, we should
rather fix the issue.
> Signed-off-by: Edward D'Souza <edsouza@gmail.com>
> ---
> contrib/completion/git-prompt.sh | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
> index c6cbef38c2..ab5bcc0fec 100644
> --- a/contrib/completion/git-prompt.sh
> +++ b/contrib/completion/git-prompt.sh
> @@ -35,6 +35,11 @@
> #
> # The prompt status always includes the current branch name.
> #
> +# The prompt can be customized by setting various shell variables
> +# (GIT_PS1_SHOWDIRTYSTATE, GIT_PS1_SHOWSTASHSTATE, etc.), which are described
> +# below. Make sure that these variables get set *before* the
> +# "source ~/.git-prompt.sh" line from step 2 (above) runs.
> +#
> # In addition, if you set GIT_PS1_SHOWDIRTYSTATE to a nonempty value,
> # unstaged (*) and staged (+) changes will be shown next to the branch
> # name. You can configure this per-repository with the
> --
> gitgitgadget
next prev parent reply other threads:[~2019-06-05 16:07 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-05 15:06 [PATCH 0/1] Improve instructions around how to set git-prompt preference variables Edward D'Souza via GitGitGadget
2019-06-05 15:06 ` [PATCH 1/1] git-prompt.sh: update shell variable instructions Edward D'Souza via GitGitGadget
2019-06-05 16:06 ` SZEDER Gábor [this message]
2019-06-05 19:26 ` Edward D'Souza
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=20190605160656.GU951@szeder.dev \
--to=szeder.dev@gmail.com \
--cc=edsouza@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=gitster@pobox.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).