VCS_INFO_detect_by_dir() { #{{{ local dirname=$1 local basedir="." realbasedir realbasedir="$(VCS_INFO_realpath ${basedir})" while [[ ${realbasedir} != '/' ]]; do if [[ -n ${vcs_comm[detect_need_file]} ]] ; then [[ -d ${basedir}/${dirname} ]] && \ [[ -e ${basedir}/${dirname}/${vcs_comm[detect_need_file]} ]] && \ break else [[ -d ${basedir}/${dirname} ]] && break fi basedir=${basedir}/.. realbasedir="$(VCS_INFO_realpath ${basedir})" done [[ ${realbasedir} == "/" ]] && return 1 vcs_comm[basedir]=${realbasedir} return 0 }