mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-11-01 06:20:55 +01:00
Frank Terbeck: 27049, 27050, 27051, 27052: VCS_INFO improvements
This commit is contained in:
parent
a1fc66a3cd
commit
a5417250d5
5 changed files with 51 additions and 7 deletions
11
ChangeLog
11
ChangeLog
|
|
@ -1,3 +1,12 @@
|
|||
2009-06-19 Peter Stephenson <p.w.stephenson@ntlworld.com>
|
||||
|
||||
* Frank Terbeck: 27049, 27050, 27051, 27052:
|
||||
Functions/VCS_Info/VCS_INFO_bydir_detect,
|
||||
Functions/VCS_Info/Backends/VCS_INFO_detect_hg,
|
||||
Functions/VCS_Info/Backends/VCS_INFO_get_data_git,
|
||||
Functions/VCS_Info/Backends/VCS_INFO_get_data_hg: VCS_INFO
|
||||
improvements.
|
||||
|
||||
2009-06-18 Clint Adams <clint@zsh.org>
|
||||
|
||||
* 27048: Functions/MIME/zsh-mime-setup: avoid multiline prints
|
||||
|
|
@ -11842,5 +11851,5 @@
|
|||
|
||||
*****************************************************
|
||||
* This is used by the shell to define $ZSH_PATCHLEVEL
|
||||
* $Revision: 1.4715 $
|
||||
* $Revision: 1.4716 $
|
||||
*****************************************************
|
||||
|
|
|
|||
|
|
@ -7,6 +7,6 @@ setopt localoptions NO_shwordsplit
|
|||
[[ $1 == '--flavours' ]] && return 1
|
||||
|
||||
VCS_INFO_check_com ${vcs_comm[cmd]} || return 1
|
||||
vcs_comm[detect_need_file]=branch
|
||||
vcs_comm[detect_need_file]=store
|
||||
VCS_INFO_bydir_detect '.hg'
|
||||
return $?
|
||||
|
|
|
|||
|
|
@ -135,7 +135,9 @@ if [[ -z ${gitdir} ]] || [[ -z ${gitbranch} ]] ; then
|
|||
return 1
|
||||
fi
|
||||
|
||||
if zstyle -t ":vcs_info:${vcs}:${usercontext}:${rrn}" "check-for-changes" ; then
|
||||
if zstyle -t ":vcs_info:${vcs}:${usercontext}:${rrn}" "check-for-changes" && \
|
||||
[[ "$(git rev-parse --is-inside-git-dir 2> /dev/null)" != 'true' ]] && \
|
||||
git rev-parse --quiet --verify HEAD &> /dev/null ; then
|
||||
# Default: off - these are potentially expensive on big repositories
|
||||
${vcs_comm[cmd]} diff --no-ext-diff --ignore-submodules --quiet --exit-code ||
|
||||
gitunstaged=1
|
||||
|
|
|
|||
|
|
@ -3,10 +3,43 @@
|
|||
## Distributed under the same BSD-ish license as zsh itself.
|
||||
|
||||
setopt localoptions NO_shwordsplit
|
||||
local hgbranch hgbase
|
||||
local file hgbranch hgbranch_name hgbase hghash hglrev r_branch r_info
|
||||
|
||||
hgbase=${vcs_comm[basedir]}
|
||||
rrn=${hgbase:t}
|
||||
hgbranch=$(< ${hgbase}/.hg/branch)
|
||||
VCS_INFO_formats '' "${hgbranch}" "${hgbase}" '' '' '' ''
|
||||
|
||||
file="${hgbase}/.hg/branch"
|
||||
if [[ -r ${file} ]] ; then
|
||||
hgbranch_name=$(< ${file})
|
||||
else
|
||||
hgbranch_name="default"
|
||||
fi
|
||||
|
||||
hghash=''
|
||||
hglrev=''
|
||||
if zstyle -t ":vcs_info:${vcs}:${usercontext}:${rrn}" get-revision ; then
|
||||
# Calling the 'hg' program is quite a bit too slow for prompts.
|
||||
# If there's a way around that, I'd be interested.
|
||||
# Disabled by default anyway, so no harm done.
|
||||
|
||||
HGRCPATH="/dev/null" ${vcs_comm[cmd]} branches \
|
||||
| while read -r r_branch r_info ; do
|
||||
if [[ ${r_branch} == ${hgbranch_name} ]] ; then
|
||||
match=()
|
||||
: ${r_info/(#b)([^:]##):(*)}
|
||||
hglrev=${match[1]}
|
||||
hghash=${match[2]}
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -n ${hglrev} ]] ; then
|
||||
zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" branchformat hgbranch || hgbranch="%b:%r"
|
||||
zformat -f hgbranch "${hgbranch}" "b:${hgbranch_name}" "r:${hglrev}"
|
||||
fi
|
||||
else
|
||||
hgbranch="${hgbranch_name}"
|
||||
fi
|
||||
|
||||
VCS_INFO_formats '' "${hgbranch}" "${hgbase}" '' '' "${hglrev}" "${hghash}"
|
||||
return 0
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ realbasedir="$(VCS_INFO_realpath ${basedir})"
|
|||
while [[ ${realbasedir} != '/' ]]; do
|
||||
if [[ -n ${vcs_comm[detect_need_file]} ]] ; then
|
||||
[[ -d ${basedir}/${dirname} ]] && \
|
||||
[[ -f ${basedir}/${dirname}/${vcs_comm[detect_need_file]} ]] && \
|
||||
[[ -e ${basedir}/${dirname}/${vcs_comm[detect_need_file]} ]] && \
|
||||
break
|
||||
else
|
||||
[[ -d ${basedir}/${dirname} ]] && break
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue