git commit_ahead

This commit is contained in:
pvincent
2024-05-02 21:18:38 +04:00
parent 2a9788a594
commit 72a0335fb1
2 changed files with 29 additions and 6 deletions
+10
View File
@@ -0,0 +1,10 @@
TODO
====
* [ ] prompt git shows version with `+` when there is more than one commit over current version. ie: v-1.0.0 + 2 commits more should display v-1.0.0+
* [ ] semver_git_tag should append `RELEASE_NOTES.md` from this TODO markdown file, providing that NEW NOTE section below contains appropriate items to fulfill the current release note
* [ ] git log <LATEST_TAG>..HEAD --oneline
NEW NOTE
========
+19 -6
View File
@@ -6,12 +6,15 @@ function __prompt_command {
local R='\[\e[0m\]'
local Red='\[\e[31m\]'
local Gre='\[\e[32m\]'
local Yel='\[\e[33m\]'
local Yel='\[\e[93m\]'
local Blu='\[\e[34m\]'
local Cya='\[\e[36m\]'
local Mag='\[\e[95m\]'
local Gra='\[\e[90m\]'
local DIVERGENT_GIT_SYMBOL="${Yel}➾${R}"
local SYNCHRONIZED_GIT_SYMBOL="${Gre}✔${R}"
# set xterm title
echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"
@@ -65,6 +68,7 @@ function __prompt_command {
if git rev-parse --git-dir >/dev/null 2>&1; then
# current dir is version controlled
local branch tag_release dirty
branch=$(git branch 2>/dev/null | grep -e ^* | cut -d ' ' -f2)
PS1+=" ${R}[${Mag}${branch}${R}|"
@@ -72,16 +76,25 @@ function __prompt_command {
tag_release=$(git describe --tags 2>/dev/null | cut -d'-' -f1)
dirty=$(git status -s | wc -l)
if [[ $dirty -ne 0 ]]; then
PS1+="|${tag_release}${Yel}…$dirty"
PS1+="${Yel}${DIVERGENT_GIT_SYMBOL}${R}|${tag_release}${Yel}…$dirty"
else
local ahead=$(git rev-list --branches --not --remotes | wc -l)
local ahead
ahead=$(git rev-list --branches --not --remotes | wc -l)
if [[ $ahead -ne 0 ]]; then
PS1+="|${tag_release}${Cya}${ahead}"
PS1+="${DIVERGENT_GIT_SYMBOL}|${tag_release}${Cya}${ahead}"
else
if [[ -z $tag_release ]]; then
PS1+="${Blu}✔"
PS1+="${SYNCHRONIZED_GIT_SYMBOL}"
else
PS1+="${Gre}✔${R}|${Blu}${tag_release}"
local commit_ahead
commit_ahead=$(git log "$tag_release"..HEAD --oneline | wc -l)
if [[ $commit_ahead -gt 0 ]]; then
PS1+="${DIVERGENT_GIT_SYMBOL}|${tag_release}${Yel}↟${commit_ahead}"
else
PS1+="${SYNCHRONIZED_GIT_SYMBOL}|${Cya}${tag_release}"
fi
fi
fi
fi