diff mbox series

[2/2,RFC] git-prompt: include sparsity state as well

Message ID 64613ad7ad6e5224c9d36fd1fd6222cbd3538705.1592350413.git.gitgitgadget@gmail.com (mailing list archive)
State New, archived
Headers show
Series Sparse checkout status | expand

Commit Message

John Passaro via GitGitGadget June 16, 2020, 11:33 p.m. UTC
From: Elijah Newren <newren@gmail.com>

The current git prompt includes a lot of possible state information, from
various flavors of rebases to cherry-picks, or merges, or bisects.  Add
sparsity as another state flavor (though one which can be present
simultaneously with any of rebase/cherry-pick/merge/bisect).  This extra
state is shown with an extra
    |SPARSE
substring before the other states.  (Sparsity is probably not going to
change much within a repository, while temporary operations will.  So we
want the temporary operation related state changes to be listed last, to
make them appear closer to where the user types and make them more
likely to be noticed.)  Thus, for example, the prompt might look like:
    (branchname|SPARSE|REBASE 6/10)

Signed-off-by: Elijah Newren <newren@gmail.com>
---
 contrib/completion/git-prompt.sh | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
index 014cd7c3cfc..3e7344a4014 100644
--- a/contrib/completion/git-prompt.sh
+++ b/contrib/completion/git-prompt.sh
@@ -421,6 +421,11 @@  __git_ps1 ()
 		return $exit
 	fi
 
+	local sparse=""
+	if [ "$(git config --bool core.sparseCheckout)" == "true" ]; then
+	    sparse="|SPARSE"
+	fi
+
 	local r=""
 	local b=""
 	local step=""
@@ -543,7 +548,7 @@  __git_ps1 ()
 	fi
 
 	local f="$w$i$s$u"
-	local gitstring="$c$b${f:+$z$f}$r$p"
+	local gitstring="$c$b${f:+$z$f}${sparse}$r$p"
 
 	if [ $pcmode = yes ]; then
 		if [ "${__git_printf_supports_v-}" != yes ]; then