From d5c1bf98d7d49d214bbf500d004d96ef2df77b60 Mon Sep 17 00:00:00 2001 From: Brian Gernhardt Date: Tue, 2 Jul 2013 11:16:11 -0400 Subject: [PATCH] git_prompt: Add branch information for rebase --- share/functions/__fish_git_prompt.fish | 35 +++++++++++++++----------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/share/functions/__fish_git_prompt.fish b/share/functions/__fish_git_prompt.fish index 84ce09017..e39b2c1a2 100644 --- a/share/functions/__fish_git_prompt.fish +++ b/share/functions/__fish_git_prompt.fish @@ -390,8 +390,10 @@ function __fish_git_prompt_operation_branch_bare --description "__fish_git_promp if test -f $git_dir/rebase-merge/interactive set operation "|REBASE-i" + set branch (cat $git_dir/rebase-merge/head-name ^/dev/null) else if test -d $git_dir/rebase-merge set operation "|REBASE-m" + set branch (cat $git_dir/rebase-merge/head-name ^/dev/null) else if test -d $git_dir/rebase-apply if test -f $git_dir/rebase-apply/rebasing @@ -410,25 +412,28 @@ function __fish_git_prompt_operation_branch_bare --description "__fish_git_promp end end - set branch (git symbolic-ref HEAD ^/dev/null; set os $status) - if test $os -ne 0 - set branch (switch "$__fish_git_prompt_describe_style" - case contains - git describe --contains HEAD - case branch - git describe --contains --all HEAD - case describe - git describe HEAD - case default '*' - git describe --tags --exact-match HEAD - end ^/dev/null; set os $status) + if test -z "$branch" + set branch (git symbolic-ref HEAD ^/dev/null; set os $status) if test $os -ne 0 - set branch (cut -c1-7 $git_dir/HEAD ^/dev/null; set os $status) + set detached yes + set branch (switch "$__fish_git_prompt_describe_style" + case contains + git describe --contains HEAD + case branch + git describe --contains --all HEAD + case describe + git describe HEAD + case default '*' + git describe --tags --exact-match HEAD + end ^/dev/null; set os $status) if test $os -ne 0 - set branch unknown + set branch (cut -c1-7 $git_dir/HEAD ^/dev/null; set os $status) + if test $os -ne 0 + set branch unknown + end end + set branch "($branch)" end - set branch "($branch)" end if test "true" = (git rev-parse --is-inside-git-dir ^/dev/null)