From 1b768a3b407103cd77d21d856051183960e0349e Mon Sep 17 00:00:00 2001 From: Brian Hartvigsen Date: Thu, 8 Nov 2012 13:48:43 -0700 Subject: Update plugins/svn/svn.plugin.zsh Behave more like lib/git.zsh. Set `SVN_SHOW_BRANCH="true"` to display branch/tag or trunk instead of just repo name. Falls back to repo name if branch information is not available. Idea and awk call from revans/bash-it/themes/base.theme.bash --- plugins/svn/svn.plugin.zsh | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'plugins/svn') diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index 4d5bfb8dd..bb46a7d0d 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -1,7 +1,14 @@ function svn_prompt_info { if [ $(in_svn) ]; then + if [ "x$SVN_SHOW_BRANCH" = "xtrue" ]; then + unset SVN_SHOW_BRANCH + _DISPLAY=$(svn_get_branch_name) + else + _DISPLAY=$(svn_get_repo_name) + fi echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\ -$ZSH_THEME_REPO_NAME_COLOR$(svn_get_repo_name)$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR" +$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR" + unset _DISPLAY fi } @@ -20,6 +27,16 @@ function svn_get_repo_name { fi } +function svn_get_branch_name { + _DISPLAY=$(svn info 2> /dev/null | awk -F/ '/^URL:/ { for (i=0; i<=NF; i++) { if ($i == "branches" || $i == "tags" ) { print $(i+1); break }; if ($i == "trunk") { print $i; break } } }') + if [ "x$_DISPLAY" = "x" ]; then + svn_get_repo_name + else + echo $_DISPLAY + fi + unset _DISPLAY +} + function svn_get_rev_nr { if [ $(in_svn) ]; then svn info 2> /dev/null | sed -n s/Revision:\ //p -- cgit v1.2.3-70-g09d2 From f2ac08832ad8a6a156117c870ace622b9a6035ac Mon Sep 17 00:00:00 2001 From: Caleb Epstein Date: Mon, 12 Nov 2012 11:53:09 -0500 Subject: Handle metachars in svn status output using grep -q --- plugins/svn/svn.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'plugins/svn') diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index 4d5bfb8dd..d82e3b9ee 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -28,8 +28,8 @@ function svn_get_rev_nr { function svn_dirty_choose { if [ $(in_svn) ]; then - s=$(svn status|grep -E '^\s*[ACDIM!?L]' 2>/dev/null) - if [ $s ]; then + svn status 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]' + if [ $pipestatus[-1] -ne 0 ]; then echo $1 else echo $2 -- cgit v1.2.3-70-g09d2 From 91c57e6d426a1b5b3db3d7d9aaa5d922c00a5f09 Mon Sep 17 00:00:00 2001 From: Caleb Epstein Date: Tue, 13 Nov 2012 12:48:37 -0500 Subject: Untabify --- plugins/svn/svn.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins/svn') diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index d82e3b9ee..bd2767e3e 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -29,7 +29,7 @@ function svn_get_rev_nr { function svn_dirty_choose { if [ $(in_svn) ]; then svn status 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]' - if [ $pipestatus[-1] -ne 0 ]; then + if [ $pipestatus[-1] -ne 0 ]; then echo $1 else echo $2 -- cgit v1.2.3-70-g09d2 From 79e620c392393f254d9614b18963af1c9ac234e7 Mon Sep 17 00:00:00 2001 From: Drarok Ithaqua Date: Tue, 27 Nov 2012 12:03:51 +0000 Subject: Whitespace cleanup. --- plugins/svn/svn.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'plugins/svn') diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index bd2767e3e..142ac3bd3 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -15,7 +15,7 @@ function in_svn() { function svn_get_repo_name { if [ $(in_svn) ]; then svn info | sed -n 's/Repository\ Root:\ .*\///p' | read SVN_ROOT - + svn info | sed -n "s/URL:\ .*$SVN_ROOT\///p" fi } @@ -31,7 +31,7 @@ function svn_dirty_choose { svn status 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]' if [ $pipestatus[-1] -ne 0 ]; then echo $1 - else + else echo $2 fi fi -- cgit v1.2.3-70-g09d2 From 120db35b2dd7792b981401f66323e8886668c909 Mon Sep 17 00:00:00 2001 From: Drarok Ithaqua Date: Tue, 27 Nov 2012 12:08:18 +0000 Subject: Fix the backwards svn status, and add comments explaining which way grep does things. --- plugins/svn/svn.plugin.zsh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'plugins/svn') diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index 142ac3bd3..79c8bdcdf 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -1,3 +1,4 @@ + function svn_prompt_info { if [ $(in_svn) ]; then echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\ @@ -29,9 +30,11 @@ function svn_get_rev_nr { function svn_dirty_choose { if [ $(in_svn) ]; then svn status 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]' - if [ $pipestatus[-1] -ne 0 ]; then + if [ $pipestatus[-1] -eq 0 ]; then + # Grep exits with 0 when "One or more lines were selected", return "dirty". echo $1 else + # Otherwise, no lines were found, or an error occurred. Return clean. echo $2 fi fi -- cgit v1.2.3-70-g09d2