about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDaniel Shahaf <d.s@daniel.shahaf.name>2014-05-25 21:53:35 +0000
committerFrank Terbeck <ft@bewatermyfriend.org>2014-05-29 16:50:07 +0200
commitbb271217fe16bc260a4a7ffa29b674c2a7abbc8e (patch)
tree85b9288d3a571998e5ef291acaed00411ab61a52
parentd082827c8326706e734b20981b4a4d986e0d54ff (diff)
downloadzsh-bb271217fe16bc260a4a7ffa29b674c2a7abbc8e.tar.gz
zsh-bb271217fe16bc260a4a7ffa29b674c2a7abbc8e.tar.xz
zsh-bb271217fe16bc260a4a7ffa29b674c2a7abbc8e.zip
32619: vcs_info svn: Use the revision of cwd
Previously, the value of the wc root would be used.  In Subversion,
it makes more sense to use the revision of cwd, since all commands
(e.g., 'svn ci', 'svnversion') operate only on cwd and below, not on
wcroot and below.
-rw-r--r--ChangeLog5
-rw-r--r--Functions/VCS_Info/Backends/VCS_INFO_get_data_svn8
2 files changed, 10 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 22f6b3cf8..33b693247 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-05-29  Daniel Shahaf  <d.s@daniel.shahaf.name>
+
+	* 32619: Functions/VCS_Info/Backends/VCS_INFO_get_data_svn:
+	vcs_info svn: Use the revision of cwd
+
 2014-05-18  Peter Stephenson  <p.w.stephenson@ntlworld.com>
 
 	* Jun T: 32616: Src/Builtins/rlimits.c: unnecessary printf
diff --git a/Functions/VCS_Info/Backends/VCS_INFO_get_data_svn b/Functions/VCS_Info/Backends/VCS_INFO_get_data_svn
index 41cc3e783..ae3c49959 100644
--- a/Functions/VCS_Info/Backends/VCS_INFO_get_data_svn
+++ b/Functions/VCS_Info/Backends/VCS_INFO_get_data_svn
@@ -7,7 +7,7 @@
 setopt localoptions noksharrays extendedglob NO_shwordsplit
 local svnbase svnbranch a b rrn
 local -i rc
-local -A svninfo parentinfo
+local -A svninfo parentinfo cwdinfo
 local -xA hook_com
 
 svnbase=".";
@@ -28,6 +28,8 @@ done
 #rc=${pipestatus[1]}
 #(( rc != 0 )) && return 1
 
+cwdinfo=(${(kv)svninfo})
+
 while [[ -d "${svnbase}/../.svn" ]]; do
     parentinfo=()
     ${vcs_comm[cmd]} info --non-interactive "${svnbase}/.." | while IFS=: read a b; do parentinfo[${a// /_}]="${b## #}"; done
@@ -40,12 +42,12 @@ svnbase="$(VCS_INFO_realpath ${svnbase})"
 
 rrn=${svnbase:t}
 zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" branchformat svnbranch || svnbranch="%b:%r"
-hook_com=( branch "${svninfo[URL]##*/}" revision "${svninfo[Revision]}" )
+hook_com=( branch "${svninfo[URL]##*/}" revision "${cwdinfo[Revision]}" )
 if VCS_INFO_hook 'set-branch-format' "${svnbranch}"; then
     zformat -f svnbranch "${svnbranch}" "b:${hook_com[branch]}" "r:${hook_com[revision]}"
 else
     svnbranch=${hook_com[branch-replace]}
 fi
 hook_com=()
-VCS_INFO_formats '' "${svnbranch}" "${svnbase}" '' '' "${svninfo[Revision]}" ''
+VCS_INFO_formats '' "${svnbranch}" "${svnbase}" '' '' "${cwdinfo[Revision]}" ''
 return 0