From 683ca10e369ae6699197e81f6fd5aec44c05c4f1 Mon Sep 17 00:00:00 2001 From: Ben Hilburn Date: Tue, 30 Aug 2016 20:29:36 -0400 Subject: [PATCH] vcs: adding detection of unstaged / staged for svn repos --- functions/icons.zsh | 7 +++++-- functions/vcs.zsh | 14 +++++++++----- powerlevel9k.zsh-theme | 2 +- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/functions/icons.zsh b/functions/icons.zsh index c2565f26..3542ce81 100644 --- a/functions/icons.zsh +++ b/functions/icons.zsh @@ -69,6 +69,7 @@ case $POWERLEVEL9K_MODE in VCS_REMOTE_BRANCH_ICON ' '$'\UE804 ' #  VCS_GIT_ICON $'\UE20E ' #  VCS_HG_ICON $'\UE1C3 ' #  + VCS_SVN_ICON '(svn) ' RUST_ICON '' PYTHON_ICON $'\U1F40D' # 🐍 ) @@ -122,7 +123,8 @@ case $POWERLEVEL9K_MODE in VCS_REMOTE_BRANCH_ICON ' '$'\UF204 ' #  VCS_GIT_ICON $'\UF113 ' #  VCS_HG_ICON $'\UF0C3 ' #  - RUST_ICON $'\UE6A8' #  + VCS_SVN_ICON '(svn) ' + RUST_ICON $'\UE6A8' #  PYTHON_ICON $'\U1F40D' # 🐍 ) ;; @@ -175,7 +177,8 @@ case $POWERLEVEL9K_MODE in VCS_REMOTE_BRANCH_ICON $'\u2192' # → VCS_GIT_ICON '' VCS_HG_ICON '' - RUST_ICON '' + VCS_SVN_ICON '' + RUST_ICON '' PYTHON_ICON '' ) ;; diff --git a/functions/vcs.zsh b/functions/vcs.zsh index 50b58fbf..9418df81 100644 --- a/functions/vcs.zsh +++ b/functions/vcs.zsh @@ -113,8 +113,8 @@ function +vi-vcs-detect-changes() { vcs_visual_identifier='VCS_GIT_ICON' elif [[ "${hook_com[vcs]}" == "hg" ]]; then vcs_visual_identifier='VCS_HG_ICON' -# elif [[ "${hook_com[vcs]}" == "svn" ]]; then -# vcs_visual_identifier='VCS_SVN_ICON' + elif [[ "${hook_com[vcs]}" == "svn" ]]; then + vcs_visual_identifier='VCS_SVN_ICON' fi if [[ -n "${hook_com[staged]}" ]] || [[ -n "${hook_com[unstaged]}" ]]; then @@ -127,11 +127,15 @@ function +vi-vcs-detect-changes() { function +vi-svn-detect-changes() { local svn_status=$(svn status) if [[ -n "$(echo "$svn_status" | grep \^\?)" ]]; then - hook_com[unstaged]+=" $(print_icon 'VCS_STASH_ICON')" + hook_com[unstaged]+=" $(print_icon 'VCS_UNTRACKED_ICON')" VCS_WORKDIR_HALF_DIRTY=true fi - if [[ -n "$(echo "$svn_status" | grep \^\A)" ]]; then + if [[ -n "$(echo "$svn_status" | grep \^\M)" ]]; then + hook_com[unstaged]+=" $(print_icon 'VCS_UNSTAGED_ICON')" + VCS_WORKDIR_DIRTY=true + fi + if [[ -n "$(echo "$svn_status" | grep \^\A)" ]]; then + hook_com[staged]+=" $(print_icon 'VCS_STAGED_ICON')" VCS_WORKDIR_DIRTY=true - hook_com[unstaged]+=" $(print_icon 'VCS_STAGED_ICON')" fi } diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme index 3d7a913a..bf09b4ce 100755 --- a/powerlevel9k.zsh-theme +++ b/powerlevel9k.zsh-theme @@ -876,7 +876,7 @@ prompt_vcs() { zstyle ':vcs_info:git*+set-message:*' hooks $POWERLEVEL9K_VCS_GIT_HOOKS defined POWERLEVEL9K_VCS_HG_HOOKS || POWERLEVEL9K_VCS_HG_HOOKS=(vcs-detect-changes) zstyle ':vcs_info:hg*+set-message:*' hooks $POWERLEVEL9K_VCS_HG_HOOKS - defined POWERLEVEL9K_VCS_SVN_HOOKS || POWERLEVEL9K_VCS_SVN_HOOKS=(svn-detect-changes) + defined POWERLEVEL9K_VCS_SVN_HOOKS || POWERLEVEL9K_VCS_SVN_HOOKS=(vcs-detect-changes svn-detect-changes) zstyle ':vcs_info:svn*+set-message:*' hooks $POWERLEVEL9K_VCS_SVN_HOOKS # For Hg, only show the branch name