completion: fix PS1 display during a merge on detached HEAD
authorJunio C Hamano <gitster@pobox.com>
Sat, 16 May 2009 18:46:22 +0000 (11:46 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sun, 17 May 2009 02:46:31 +0000 (19:46 -0700)
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.

Acked-By: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/completion/git-completion.bash

index 1683e6d7b8bc677469d52acf4d6ff187e084cf3a..c2f8ea3444f932006fbbf9e4f3490c25d15bfe2e 100755 (executable)
@@ -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