mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-12-19 20:29:45 +01:00
perf(mercurial): improve performance of hg_prompt_info
(#7929)
Replaced two different calls of hg with one `hg --id --branch` for retrieving information whether we're in a repo (will be empty if not), whether the repo is dirty (revision id will contain "+" if there are uncommitted changed), and the branch name. Closes #6197 Closes #7929
This commit is contained in:
parent
dcf12ba8f3
commit
e52584c901
1 changed files with 22 additions and 5 deletions
|
@ -35,12 +35,29 @@ function hg_get_branch_name() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function hg_prompt_info {
|
function hg_prompt_info {
|
||||||
_DISPLAY=`hg branch 2>/dev/null`
|
local info rev branch dirty
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_HG_PROMPT_PREFIX\
|
if ! info=$(hg id --id --branch 2>/dev/null); then
|
||||||
$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_PROMPT_BASE_COLOR$(hg_dirty)$ZSH_THEME_HG_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR"
|
return
|
||||||
fi
|
fi
|
||||||
unset _DISPLAY
|
|
||||||
|
rev="${info[(w)1]}"
|
||||||
|
branch="${${info[(w)2]}:gs/%/%%}"
|
||||||
|
|
||||||
|
if [[ "$rev" = *+ ]]; then
|
||||||
|
dirty="$ZSH_THEME_HG_PROMPT_DIRTY"
|
||||||
|
else
|
||||||
|
dirty="$ZSH_THEME_HG_PROMPT_CLEAN"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "${ZSH_PROMPT_BASE_COLOR}\
|
||||||
|
${ZSH_THEME_HG_PROMPT_PREFIX}\
|
||||||
|
${ZSH_THEME_REPO_NAME_COLOR}\
|
||||||
|
${branch}\
|
||||||
|
${ZSH_PROMPT_BASE_COLOR}\
|
||||||
|
${dirty}\
|
||||||
|
${ZSH_THEME_HG_PROMPT_SUFFIX}\
|
||||||
|
${ZSH_PROMPT_BASE_COLOR}"
|
||||||
}
|
}
|
||||||
|
|
||||||
function hg_dirty_choose {
|
function hg_dirty_choose {
|
||||||
|
|
Loading…
Reference in a new issue