threads / patch / 19385

patchcompletion: fix PS1 display during a merge on detached HEAD

Subject: [PATCH] completion: fix PS1 display during a merge on detached HEAD

## tl;dr

2 messages between May 16, 2009 and May 16, 2009. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Junio C Hamano· May 16, 2009, 18:46 UTC · lore

If your merge stops in a conflict while on a detached HEAD, recent completion code fails to show anything. This was because various cases added to support the operation-in-progress markers (e.g. REBASE, MERGING) forgot that they need to set the variable "b" to something for the result they computed to be displayed at all.

Probably not many people make trial merges on a detached HEAD (which is tremendously useful feature of git, by the way), and that may be why this was not noticed for a long time.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 contrib/completion/git-completion.bash |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
Show changes to contrib/completion/git-completion.bash +3 −3
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index ad26b7c..4462ef0 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -99,10 +99,10 @@ __git_ps1 ()
 		elif [ -d "$g/rebase-merge" ]; then
 			r="|REBASE-m"
 			b="$(cat "$g/rebase-merge/head-name")"
-		elif [ -f "$g/MERGE_HEAD" ]; then
-			r="|MERGING"
-			b="$(git symbolic-ref HEAD 2>/dev/null)"
 		else
+			if [ -f "$g/MERGE_HEAD" ]; then
+				r="|MERGING"
+			fi
 			if [ -f "$g/BISECT_LOG" ]; then
 				r="|BISECTING"
 			fi
Shawn O. Pearce· May 16, 2009, 19:59 UTC · re: Junio C Hamano · lore

Re: [PATCH] completion: fix PS1 display during a merge on detached HEAD

Junio C Hamano <gitster@pobox.com> wrote:
Show 11 quoted lines
> If your merge stops in a conflict while on a detached HEAD, recent
> completion code fails to show anything.  This was because various cases
> added to support the operation-in-progress markers (e.g. REBASE, MERGING)
> forgot that they need to set the variable "b" to something for the result
> they computed to be displayed at all.
> 
> Probably not many people make trial merges on a detached HEAD (which is
> tremendously useful feature of git, by the way), and that may be why this
> was not noticed for a long time.
> 
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Yay, thanks Junio.
Trivially-Acked-By: Shawn O. Pearce <spearce@spearce.org>
:-)
Show 18 quoted lines
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index ad26b7c..4462ef0 100755
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -99,10 +99,10 @@ __git_ps1 ()
>  		elif [ -d "$g/rebase-merge" ]; then
>  			r="|REBASE-m"
>  			b="$(cat "$g/rebase-merge/head-name")"
> -		elif [ -f "$g/MERGE_HEAD" ]; then
> -			r="|MERGING"
> -			b="$(git symbolic-ref HEAD 2>/dev/null)"
>  		else
> +			if [ -f "$g/MERGE_HEAD" ]; then
> +				r="|MERGING"
> +			fi
>  			if [ -f "$g/BISECT_LOG" ]; then
>  				r="|BISECTING"
>  			fi
-- 
Shawn.

← back to recent threads