git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Shawn O. Pearce" <spearce@spearce.org>
To: Ted Pavlic <ted@tedpavlic.com>
Cc: git@vger.kernel.org, gitster@pobox.com
Subject: Re: [PATCH 3/3] completion: Prevents GIT_PS1_DIRTYSTATE from breaking when CWD is .git
Date: Wed, 11 Feb 2009 08:26:12 -0800	[thread overview]
Message-ID: <20090211162612.GG30949@spearce.org> (raw)
In-Reply-To: <1234366634-17900-4-git-send-email-ted@tedpavlic.com>

Ted Pavlic <ted@tedpavlic.com> wrote:
> The GIT_PS1_DIRTYSTATE support uses a "git diff" to see if a "*" should
> be placed after the branch name. The "git diff" fails with an ugly error
> if the user has just changed directory into GIT_DIR.
> 
> This patch uses "git rev-parse --is-inside-work-tree" to determine
> whether a "--work-tree=.." should be added to the "git diff".

I think it makes more sense to just drop the work tree stuff from
the prompt if we aren't inside the work tree anymore.  Meaning,
we should behave as though bash.showDirtyState is false.

 
> Signed-off-by: Ted Pavlic <ted@tedpavlic.com>
> ---
>  contrib/completion/git-completion.bash |    6 +++++-
>  1 files changed, 5 insertions(+), 1 deletions(-)
> 
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index 6772be7..ffde82a 100755
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -115,10 +115,14 @@ __git_ps1 ()
>  
>  		local w
>  		local i
> +		local worktreestr
>  
>  		if test -n "${GIT_PS1_SHOWDIRTYSTATE-}"; then
>  			if test "$(git config --bool bash.showDirtyState)" != "false"; then
> -				git diff --no-ext-diff --ignore-submodules \
> +				if test "false" = "$(git rev-parse --is-inside-work-tree 2>/dev/null)"; then
> +					worktreestr="--work-tree=.."
> +				fi
> +				git ${worktreestr} diff --no-ext-diff --ignore-submodules \
>  					--quiet --exit-code || w="*"
>  				if git rev-parse --quiet --verify HEAD >/dev/null; then
>  					git diff-index --cached --quiet \
> -- 
> 1.6.1.2.390.gba743
> 

-- 
Shawn.

  parent reply	other threads:[~2009-02-11 16:27 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-11 15:37 [PATCH 0/3] completion: Convention updates and DIRTYSTATE fix Ted Pavlic
2009-02-11 15:37 ` [PATCH 1/3] completion: For consistency, changed "git rev-parse" to __gitdir calls Ted Pavlic
2009-02-11 15:37   ` [PATCH 2/3] completion: Change "if [...]" to "if test ..." to match git convention Ted Pavlic
2009-02-11 15:37     ` [PATCH 3/3] completion: Prevents GIT_PS1_DIRTYSTATE from breaking when CWD is .git Ted Pavlic
2009-02-11 16:18       ` [PATCH 4/3] completion: More fixes to prevent unbound variable errors Ted Pavlic
2009-02-11 16:28         ` Shawn O. Pearce
2009-02-11 16:26       ` Shawn O. Pearce [this message]
2009-02-11 16:53         ` [PATCH 3/3] completion: Prevents GIT_PS1_DIRTYSTATE from breaking when CWD is .git Ted Pavlic
2009-02-11 16:56       ` Junio C Hamano
2009-02-11 17:20         ` Ted Pavlic
2009-02-11 18:01           ` Shawn O. Pearce
2009-02-11 16:24     ` [PATCH 2/3] completion: Change "if [...]" to "if test ..." to match git convention Shawn O. Pearce
2009-02-11 16:36       ` Ted Pavlic
2009-02-11 17:14         ` Junio C Hamano
2009-02-11 16:46     ` Junio C Hamano
2009-02-11 16:22   ` [PATCH 1/3] completion: For consistency, changed "git rev-parse" to __gitdir calls Shawn O. Pearce

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=20090211162612.GG30949@spearce.org \
    --to=spearce@spearce.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=ted@tedpavlic.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).