X-Git-Url: https://git.madduck.net/etc/zsh.git/blobdiff_plain/571298800baffad35b09ea9836d9b8756af9e26a..c2fc1c7c9dc991f9e71b1074a5556572f7e0a368:/.zsh/zshrc/85_vcs_prompt?ds=inline diff --git a/.zsh/zshrc/85_vcs_prompt b/.zsh/zshrc/85_vcs_prompt index b608a6c..a99ca18 100644 --- a/.zsh/zshrc/85_vcs_prompt +++ b/.zsh/zshrc/85_vcs_prompt @@ -41,6 +41,28 @@ __hg_get_branch() echo "hg:$(hg branch)" } +__bzr_get_reporoot() +{ + local reporoot + reporoot="$(bzr info | sed -rne 's, *branch root: ,,p')" + case "$reporoot" in + .) echo "$PWD";; + *) echo "$reporoot";; + esac +} + +__bzr_get_branch() +{ + local branch revno + bzr version-info | while read i j; do + case "$i" in + revno:) revno="$j";; + branch-nick:) branch="$j";; + esac + done + echo "bzr:${branch}@$revno" +} + __vcs_get_repo_type() { # return the type of the closest repository in the path hierarchy @@ -49,9 +71,6 @@ __vcs_get_repo_type() [ -d ${dir}.git ] && echo git && break [ -d ${dir}.bzr ] && echo bzr && break [ -d ${dir}.hg ] && echo hg && break - [ -d ${dir}.svn ] && echo svn && break - [ -d ${dir}.svk ] && echo svk && break - [ -d ${dir}CVS ] && echo cvs && break [ "$(readlink -f ${dir:-.})" = / ] && echo NONE && break dir="../$dir" done @@ -131,6 +150,12 @@ __vcs_set_prompt_variables() branch="$(__hg_get_branch)" || { error "could not determine hg branch"; return 1 } ;; + bzr) + reporoot="$(__bzr_get_reporoot)" || + { error "could not determine bzr repository root"; return 1 } + branch="$(__bzr_get_branch)" || + { error "could not determine bzr branch"; return 1 } + ;; *) case "$repotype" in NONE) :;;