mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-19 21:41:07 +01:00
Improved the _git_time_since_commit
function.
Check for at least one commit using a `git log` limit of one. Improves the performance inside git repos with a large history.
This commit is contained in:
parent
729b19c085
commit
de56943a0e
1 changed files with 22 additions and 25 deletions
|
@ -38,34 +38,32 @@ function _ruby_version() {
|
||||||
# Determine the time since last commit. If branch is clean,
|
# Determine the time since last commit. If branch is clean,
|
||||||
# use a neutral color, otherwise colors will vary according to time.
|
# use a neutral color, otherwise colors will vary according to time.
|
||||||
function _git_time_since_commit() {
|
function _git_time_since_commit() {
|
||||||
if git rev-parse --git-dir > /dev/null 2>&1; then
|
# Only proceed if there is actually a commit.
|
||||||
# Only proceed if there is actually a commit.
|
if git log -1 > /dev/null 2>&1; then
|
||||||
if [[ $(git log 2>&1 > /dev/null | grep -c "^fatal: bad default revision") == 0 ]]; then
|
# Get the last commit.
|
||||||
# Get the last commit.
|
last_commit=$(git log --pretty=format:'%at' -1 2> /dev/null)
|
||||||
last_commit=$(git log --pretty=format:'%at' -1 2> /dev/null)
|
now=$(date +%s)
|
||||||
now=$(date +%s)
|
seconds_since_last_commit=$((now-last_commit))
|
||||||
seconds_since_last_commit=$((now-last_commit))
|
|
||||||
|
|
||||||
# Totals
|
# Totals
|
||||||
minutes=$((seconds_since_last_commit / 60))
|
minutes=$((seconds_since_last_commit / 60))
|
||||||
hours=$((seconds_since_last_commit/3600))
|
hours=$((seconds_since_last_commit/3600))
|
||||||
|
|
||||||
# Sub-hours and sub-minutes
|
# Sub-hours and sub-minutes
|
||||||
days=$((seconds_since_last_commit / 86400))
|
days=$((seconds_since_last_commit / 86400))
|
||||||
sub_hours=$((hours % 24))
|
sub_hours=$((hours % 24))
|
||||||
sub_minutes=$((minutes % 60))
|
sub_minutes=$((minutes % 60))
|
||||||
|
|
||||||
if [ $hours -gt 24 ]; then
|
if [ $hours -gt 24 ]; then
|
||||||
commit_age="${days}d"
|
commit_age="${days}d"
|
||||||
elif [ $minutes -gt 60 ]; then
|
elif [ $minutes -gt 60 ]; then
|
||||||
commit_age="${sub_hours}h${sub_minutes}m"
|
commit_age="${sub_hours}h${sub_minutes}m"
|
||||||
else
|
else
|
||||||
commit_age="${minutes}m"
|
commit_age="${minutes}m"
|
||||||
fi
|
|
||||||
|
|
||||||
color=$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL
|
|
||||||
echo "$color$commit_age%{$reset_color%}"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
color=$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL
|
||||||
|
echo "$color$commit_age%{$reset_color%}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,4 +97,3 @@ ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL="%{$fg[grey]%}"
|
||||||
export LSCOLORS="exfxcxdxbxegedabagacad"
|
export LSCOLORS="exfxcxdxbxegedabagacad"
|
||||||
export LS_COLORS='di=34;40:ln=35;40:so=32;40:pi=33;40:ex=31;40:bd=34;46:cd=34;43:su=0;41:sg=0;46:tw=0;42:ow=0;43:'
|
export LS_COLORS='di=34;40:ln=35;40:so=32;40:pi=33;40:ex=31;40:bd=34;46:cd=34;43:su=0;41:sg=0;46:tw=0;42:ow=0;43:'
|
||||||
export GREP_COLOR='1;33'
|
export GREP_COLOR='1;33'
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue