ADDED: Mercurial prompt info support even if hg prompt extension is unavailable

This commit is contained in:
Yohann Bianchi 2013-01-20 13:10:31 +01:00
parent 8e9cf45200
commit 28b737416f

View File

@ -87,18 +87,35 @@ prompt_hg() {
local rev status local rev status
if $(hg id >/dev/null 2>&1); then if $(hg id >/dev/null 2>&1); then
if $(hg prompt >/dev/null 2>&1); then if $(hg prompt >/dev/null 2>&1); then
rev=$(hg prompt {status}) st=$(hg prompt {status})
if [[ $rev = "?" ]]; then if [[ $st = "?" ]]; then
# if files are not added
prompt_segment red white prompt_segment red white
rev='±' st='±'
elif [[ -n $rev ]]; then elif [[ -n $st ]]; then
# if any modification
prompt_segment yellow black prompt_segment yellow black
rev='±' st='±'
else
# if working copy is clean
prompt_segment green black
fi
echo -n $(hg prompt "⭠ {rev}@{branch}") $st
else
st=""
rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g')
branch=$(hg id -b 2>/dev/null)
if `hg st | grep -Eq "^\?"`; then
prompt_segment red black
st='±'
elif `hg st | grep -Eq "^(M|A)"`; then
prompt_segment yellow black
st='±'
else else
prompt_segment green black prompt_segment green black
fi fi
echo -n "⭠ $rev@$branch" $st
fi fi
echo -n $(hg prompt "⭠ {rev}@{branch}") $rev
fi fi
} }