git commit_ahead
This commit is contained in:
@@ -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
@@ -6,12 +6,15 @@ function __prompt_command {
|
|||||||
local R='\[\e[0m\]'
|
local R='\[\e[0m\]'
|
||||||
local Red='\[\e[31m\]'
|
local Red='\[\e[31m\]'
|
||||||
local Gre='\[\e[32m\]'
|
local Gre='\[\e[32m\]'
|
||||||
local Yel='\[\e[33m\]'
|
local Yel='\[\e[93m\]'
|
||||||
local Blu='\[\e[34m\]'
|
local Blu='\[\e[34m\]'
|
||||||
local Cya='\[\e[36m\]'
|
local Cya='\[\e[36m\]'
|
||||||
local Mag='\[\e[95m\]'
|
local Mag='\[\e[95m\]'
|
||||||
local Gra='\[\e[90m\]'
|
local Gra='\[\e[90m\]'
|
||||||
|
|
||||||
|
local DIVERGENT_GIT_SYMBOL="${Yel}➾${R}"
|
||||||
|
local SYNCHRONIZED_GIT_SYMBOL="${Gre}✔${R}"
|
||||||
|
|
||||||
# set xterm title
|
# set xterm title
|
||||||
echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"
|
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
|
if git rev-parse --git-dir >/dev/null 2>&1; then
|
||||||
# current dir is version controlled
|
# current dir is version controlled
|
||||||
|
|
||||||
local branch tag_release dirty
|
local branch tag_release dirty
|
||||||
branch=$(git branch 2>/dev/null | grep -e ^* | cut -d ' ' -f2)
|
branch=$(git branch 2>/dev/null | grep -e ^* | cut -d ' ' -f2)
|
||||||
PS1+=" ${R}[${Mag}${branch}${R}|"
|
PS1+=" ${R}[${Mag}${branch}${R}|"
|
||||||
@@ -72,16 +76,25 @@ function __prompt_command {
|
|||||||
tag_release=$(git describe --tags 2>/dev/null | cut -d'-' -f1)
|
tag_release=$(git describe --tags 2>/dev/null | cut -d'-' -f1)
|
||||||
dirty=$(git status -s | wc -l)
|
dirty=$(git status -s | wc -l)
|
||||||
if [[ $dirty -ne 0 ]]; then
|
if [[ $dirty -ne 0 ]]; then
|
||||||
PS1+="⚡|${tag_release}${Yel}…$dirty"
|
PS1+="${Yel}${DIVERGENT_GIT_SYMBOL}${R}|${tag_release}${Yel}…$dirty"
|
||||||
else
|
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
|
if [[ $ahead -ne 0 ]]; then
|
||||||
PS1+="⚡|${tag_release}${Cya}↑${ahead}"
|
PS1+="${DIVERGENT_GIT_SYMBOL}|${tag_release}${Cya}↶${ahead}"
|
||||||
else
|
else
|
||||||
if [[ -z $tag_release ]]; then
|
if [[ -z $tag_release ]]; then
|
||||||
PS1+="${Blu}✔"
|
PS1+="${SYNCHRONIZED_GIT_SYMBOL}"
|
||||||
else
|
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
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user