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 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
|
||||
|
||||
Reference in New Issue
Block a user