# vcs_info() documentation: {{{
#
-# The vcs_info () feature can be configured via zstyle:
+# The vcs_info() feature can be configured via zstyle:
# First, the context in which we are working:
# :vcs_info:<vcs-string>
-# ...where <vcs-string> is one of: git, hg, bzr, svn or svk
+# ...where <vcs-string> is one of:
+# - git, git-svn, hg, darcs, bzr, mtn, svn or svk
#
# You can of course use ':vcs_info:*' to match all VCSs at once.
#
printf '%s' ${msg}
}
# }}}
+VCS_INFO_darcs_get_data () { # {{{
+ local msg darcsbase
+
+ darcsbase=${vcs_comm[basedir]}
+ msg=$(VCS_INFO_format)
+ zformat -f msg "${msg}" "a:" "b:${darcsbase:t}" "s:${vcs}" "r:${darcsbase:t}" "R:${darcsbase}"
+ printf '%s' ${msg}
+}
+# }}}
VCS_INFO_hg_get_data () { # {{{
local msg hgbranch hgbase
printf '%s' ${msg}
}
# }}}
+VCS_INFO_mtn_get_data () { # {{{
+ local msg mtnbranch mtnbase
+
+ mtnbase=${vcs_comm[basedir]}
+ mtnbranch=$(mtn status | awk '/Current branch:/{ sub("Current branch: ", ""); print }')
+ msg=$(VCS_INFO_format)
+ zformat -f msg "${msg}" "a:" "b:${mtnbranch}" "s:${vcs}" "r:${mtnbase:t}" "R:${mtnbase}"
+ printf '%s' ${msg}
+}
+# }}}
VCS_INFO_svk_get_data () { # {{{
local msg svkbranch svkbase
VCS_INFO_bzr_get_data () { # {{{
local msg bzrbranch bzrbase bzrrevno i j
- bzrbase=$(bzr info | sed -rne 's, *branch root: ,,p')
- case ${bzrbase} in
- .) bzrbase=${PWD} ;;
- esac
+ bzrbase=$(bzr info 2>/dev/null | sed -rne 's, *branch root: ,,p')
+ bzrbase=$(VCS_INFO_realpath ${bzrbase})
- bzr version-info | while read i j; do
+ bzr version-info 2> /dev/null | while read i j; do
case "${i}" in
revno:)
bzrrevno=${j} ;;
VCS_INFO_bzr_detect() {
check_com -c bzr || return 1
+ vcs_comm[detect_need_file]=branch/format
VCS_INFO_detect_by_dir '.bzr'
return $?
}
+VCS_INFO_darcs_detect() {
+ check_com -c darcs || return 1
+ vcs_comm[detect_need_file]=format
+ VCS_INFO_detect_by_dir '_darcs'
+ return $?
+}
+
VCS_INFO_git_detect() {
if check_com -c git && git rev-parse --is-inside-work-tree &> /dev/null ; then
vcs_comm[gitdir]="$(git rev-parse --git-dir 2> /dev/null)" || return 1
return $?
}
+VCS_INFO_mtn_detect() {
+ check_com -c mtn || return 1
+ vcs_comm[detect_need_file]=revision
+ VCS_INFO_detect_by_dir '_MTN'
+ return $?
+}
+
VCS_INFO_svk_detect() {
local basedir
zstyle -T ":vcs_info:${vcs}" "enable" || return 0
zstyle -a ":vcs_info:${vcs}" "disable" disabled
- VCSs=(git hg bzr svn svk)
+ VCSs=(git hg bzr darcs mtn svn svk)
(( found = 0 ))
for vcs in ${VCSs} ; do