* [PATCH] git-prompt: customizable symbols
@ 2023-01-13 17:53 Alessandro via GitGitGadget
0 siblings, 0 replies; only message in thread
From: Alessandro via GitGitGadget @ 2023-01-13 17:53 UTC (permalink / raw)
To: git; +Cc: Alessandro, Alessandro
From: Alessandro <alezini94@hotmail.it>
Add the possibility to customize git-prompt symbols by adding a bunch of
additional variables. The variables default to the original symbol.
Signed-off-by: Alessandro Zini <alezini94@hotmail.it>
---
git-prompt: customizable symbols
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1433%2Faleeraser%2Ffeat%2Fcustomize-git-prompt-symbols-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1433/aleeraser/feat/customize-git-prompt-symbols-v1
Pull-Request: https://github.com/git/git/pull/1433
contrib/completion/git-prompt.sh | 39 ++++++++++++++++++++------------
1 file changed, 24 insertions(+), 15 deletions(-)
diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
index 57972c2845c..d29209f0cef 100644
--- a/contrib/completion/git-prompt.sh
+++ b/contrib/completion/git-prompt.sh
@@ -39,25 +39,31 @@
# unstaged (*) and staged (+) changes will be shown next to the branch
# name. You can configure this per-repository with the
# bash.showDirtyState variable, which defaults to true once
-# GIT_PS1_SHOWDIRTYSTATE is enabled.
+# GIT_PS1_SHOWDIRTYSTATE is enabled. Variables GIT_PS1_UNSTAGED_SYMBOL
+# and GIT_PS1_STAGED_SYMBOL can be used to change the shown symbol.
#
# You can also see if currently something is stashed, by setting
# GIT_PS1_SHOWSTASHSTATE to a nonempty value. If something is stashed,
-# then a '$' will be shown next to the branch name.
+# then a '$' will be shown next to the branch name. Variable
+# GIT_PS1_STASH_SYMBOL can be used to change the shown symbol.
#
# If you would like to see if there're untracked files, then you can set
# GIT_PS1_SHOWUNTRACKEDFILES to a nonempty value. If there're untracked
# files, then a '%' will be shown next to the branch name. You can
# configure this per-repository with the bash.showUntrackedFiles
# variable, which defaults to true once GIT_PS1_SHOWUNTRACKEDFILES is
-# enabled.
+# enabled. Variable GIT_PS1_UNTRACKED_SYMBOL can be used to change the
+# shown symbol.
#
# If you would like to see the difference between HEAD and its upstream,
# set GIT_PS1_SHOWUPSTREAM="auto". A "<" indicates you are behind, ">"
# indicates you are ahead, "<>" indicates you have diverged and "="
-# indicates that there is no difference. You can further control
-# behaviour by setting GIT_PS1_SHOWUPSTREAM to a space-separated list
-# of values:
+# indicates that there is no difference. Symbols can be configured by
+# setting variables GIT_PS1_UPSTREAM_NOT_PRESENT_SYMBOL,
+# GIT_PS1_UPSTREAM_EQUAL_SYMBOL, GIT_PS1_UPSTREAM_AHEAD_SYMBOL,
+# GIT_PS1_UPSTREAM_BEHIND_SYMBOL, GIT_PS1_UPSTREAM_DIVERGED_SYMBOL
+# You can further control behaviour by setting GIT_PS1_SHOWUPSTREAM to a
+# space-separated list of values:
#
# verbose show number of commits ahead/behind (+/-) upstream
# name if verbose, then also show the upstream abbrev name
@@ -208,15 +214,15 @@ __git_ps1_show_upstream ()
if [[ -z "$verbose" ]]; then
case "$count" in
"") # no upstream
- p="" ;;
+ p="${GIT_PS1_UPSTREAM_NOT_PRESENT_SYMBOL-}" ;;
"0 0") # equal to upstream
- p="=" ;;
+ p="${GIT_PS1_UPSTREAM_EQUAL_SYMBOL-"="}" ;;
"0 "*) # ahead of upstream
- p=">" ;;
+ p="${GIT_PS1_UPSTREAM_AHEAD_SYMBOL-">"}" ;;
*" 0") # behind upstream
- p="<" ;;
+ p="${GIT_PS1_UPSTREAM_BEHIND_SYMBOL-"<"}" ;;
*) # diverged from upstream
- p="<>" ;;
+ p="${GIT_PS1_UPSTREAM_DIVERGED_SYMBOL-"<>"}" ;;
esac
else # verbose, set upstream instead of p
case "$count" in
@@ -537,8 +543,8 @@ __git_ps1 ()
if [ -n "${GIT_PS1_SHOWDIRTYSTATE-}" ] &&
[ "$(git config --bool bash.showDirtyState)" != "false" ]
then
- git diff --no-ext-diff --quiet || w="*"
- git diff --no-ext-diff --cached --quiet || i="+"
+ git diff --no-ext-diff --quiet || w="${GIT_PS1_UNSTAGED_SYMBOL-"*"}"
+ git diff --no-ext-diff --cached --quiet || i="${GIT_PS1_STAGED_SYMBOL-"+"}"
if [ -z "$short_sha" ] && [ -z "$i" ]; then
i="#"
fi
@@ -546,14 +552,17 @@ __git_ps1 ()
if [ -n "${GIT_PS1_SHOWSTASHSTATE-}" ] &&
git rev-parse --verify --quiet refs/stash >/dev/null
then
- s="$"
+ s="${GIT_PS1_STASH_SYMBOL-"$"}"
fi
if [ -n "${GIT_PS1_SHOWUNTRACKEDFILES-}" ] &&
[ "$(git config --bool bash.showUntrackedFiles)" != "false" ] &&
git ls-files --others --exclude-standard --directory --no-empty-directory --error-unmatch -- ':/*' >/dev/null 2>/dev/null
then
- u="%${ZSH_VERSION+%}"
+ u="${GIT_PS1_UNTRACKED_SYMBOL-"%"}"
+ if [ -n "$ZSH_VERSION" ] && [ "$u" = "%" ]; then
+ u="%%"
+ fi
fi
if [ -n "${GIT_PS1_COMPRESSSPARSESTATE-}" ] &&
base-commit: a38d39a4c50d1275833aba54c4dbdfce9e2e9ca1
--
gitgitgadget
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2023-01-13 18:01 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-13 17:53 [PATCH] git-prompt: customizable symbols Alessandro via GitGitGadget
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.