Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [PATCH] prompt: fix for simple rebase

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:57:29

Felipe Contreras [off-list ref] writes:
quoted hunk
When we are rebasing without options ('am' mode), the head rebased lives
in '$g/rebase-apply/head-name', so lets use that information so it's
reported the same way as if we were doing other rebases (-i or -m).

Signed-off-by: Felipe Contreras <redacted>
---
 contrib/completion/git-prompt.sh | 2 ++
 t/t9903-bash-prompt.sh           | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
index eaf5c36..bbf7657 100644
--- a/contrib/completion/git-prompt.sh
+++ b/contrib/completion/git-prompt.sh
@@ -279,6 +279,7 @@ __git_ps1 ()
 				step=$(cat "$g/rebase-apply/next")
 				total=$(cat "$g/rebase-apply/last")
 				if [ -f "$g/rebase-apply/rebasing" ]; then
+					b="$(cat "$g/rebase-apply/head-name")"
 					r="|REBASE"
 				elif [ -f "$g/rebase-apply/applying" ]; then
 					r="|AM"
Looks correct to me, and the resulting behaviour is better

I wonder if the overall structure can be improved on top of this
change, though.

	if [ -d rebase-merge ]; then
        	set b, step, total and r to show REBASE-kind stuff
	else
        	if [ -d rebase-apply]; then
                	set step, total and r to show AM,
                        but if rebasing is there, show REBASE
		elif ...
                	handle all the other non rebase state
		elif ...
			in many different elif-then pieces
		fi

		if $b is not set; then
			set b to show the current branch
		fi
	fi

It looks somewhat strange that this has to be nested, not a straight
cascade of if/elif/.../fi.
quoted hunk
@@ -295,6 +296,7 @@ __git_ps1 ()
 				r="|BISECTING"
 			fi
 
+			test -n "$b" ||
 			b="$(git symbolic-ref HEAD 2>/dev/null)" || {
 				detached=yes
 				b="$(
diff --git a/t/t9903-bash-prompt.sh b/t/t9903-bash-prompt.sh
index 083b319..15521cc 100755
--- a/t/t9903-bash-prompt.sh
+++ b/t/t9903-bash-prompt.sh
@@ -276,7 +276,7 @@ test_expect_success 'prompt - rebase merge' '
 '
 
 test_expect_success 'prompt - rebase' '
-	printf " ((t2)|REBASE 1/3)" > expected &&
+	printf " (b2|REBASE 1/3)" > expected &&
 	git checkout b2 &&
 	test_when_finished "git checkout master" &&
 	test_must_fail git rebase b1 b2 &&
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help