git-prompt: make long upstream state indicator consistent

Use a pipe as a separator before long upstream state indicator. This is consistent with long state indicators for sparse and in-progress operations (e.g. merge). For comparison, `__git_ps1` examples without upstream state indicator: (main) (main %) (main *%) (main|SPARSE) (main %|SPARSE) (main *%|SPARSE) (main|SPARSE|REBASE 1/2) (main %|SPARSE|REBASE 1/2) Note that if there are long state indicators, they appear after short state indicators if there are any, or after the branch name if there are no short state indicators. Each long state indicator begins with a pipe (`|`) as a separator. Before/after examples with long upstream state indicator: | Before | After | | ------------------------------- | ------------------------------- | | (main u=) | (main|u=) | | (main u= origin/main) | (main|u= origin/main) | | (main u+1) | (main|u+1) | | (main u+1 origin/main) | (main|u+1 origin/main) | | (main % u=) | (main %|u=) | | (main % u= origin/main) | (main %|u= origin/main) | | (main % u+1) | (main %|u+1) | | (main % u+1 origin/main) | (main %|u+1 origin/main) | | (main|SPARSE u=) | (main|SPARSE|u=) | | (main|SPARSE u= origin/main) | (main|SPARSE|u= origin/main) | | (main|SPARSE u+1) | (main|SPARSE|u+1) | | (main|SPARSE u+1 origin/main) | (main|SPARSE|u+1 origin/main) | | (main %|SPARSE u=) | (main %|SPARSE|u=) | | (main %|SPARSE u= origin/main) | (main %|SPARSE|u= origin/main) | | (main %|SPARSE u+1) | (main %|SPARSE|u+1) | | (main %|SPARSE u+1 origin/main) | (main %|SPARSE|u+1 origin/main) | Signed-off-by: Justin Donnelly <justinrdonnelly@gmail.com> Reviewed-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Justin Donnelly committed Feb 27, 2022 at 19:57 UTC 51d2d677909c031969f82c1c5ef1cc261a9990b3
1 file changed +5 -5
contrib/completion/git-prompt.sh
+5 -5
@@ -109,7 +109,7 @@
109 __git_printf_supports_v=
110 printf -v __git_printf_supports_v -- '%s' yes >/dev/null 2>&1
111
112 -# stores the divergence from upstream in $p (for short status) or $upstream (for verbose status)
112 +# stores the divergence from upstream in $p
113 # used by GIT_PS1_SHOWUPSTREAM
114 __git_ps1_show_upstream ()
115 {
@@ -219,13 +219,13 @@ __git_ps1_show_upstream ()
219 "") # no upstream
220 upstream="" ;;
221 "0 0") # equal to upstream
222 - upstream=" u=" ;;
222 + upstream="|u=" ;;
223 "0 "*) # ahead of upstream
224 - upstream=" u+${count#0 }" ;;
224 + upstream="|u+${count#0 }" ;;
225 *" 0") # behind upstream
226 - upstream=" u-${count% 0}" ;;
226 + upstream="|u-${count% 0}" ;;
227 *) # diverged from upstream
228 - upstream=" u+${count#* }-${count% *}" ;;
228 + upstream="|u+${count#* }-${count% *}" ;;
229 esac
230 if [[ -n "$count" && -n "$name" ]]; then
231 __git_ps1_upstream_name=$(git rev-parse \