summaryrefslogtreecommitdiff
path: root/contrib/completion
diff options
context:
space:
mode:
authorThomas Gummerer <t.gummerer@gmail.com>2013-05-22 07:40:39 (GMT)
committerJunio C Hamano <gitster@pobox.com>2013-05-22 17:14:01 (GMT)
commitd0583da838afbc5e039b9f0cbbb9b1fb3aa1f1ae (patch)
treefbbb27588b9d393b965546561765f5592b184431 /contrib/completion
parent92758dd2a2de94c90c0697ef0e8174c3543a47f9 (diff)
downloadgit-d0583da838afbc5e039b9f0cbbb9b1fb3aa1f1ae.zip
git-d0583da838afbc5e039b9f0cbbb9b1fb3aa1f1ae.tar.gz
git-d0583da838afbc5e039b9f0cbbb9b1fb3aa1f1ae.tar.bz2
prompt: fix show upstream with svn and zsh
Currently the __git_ps1 git prompt gives the following error with a repository converted by git-svn, when used with zsh: __git_ps1_show_upstream:19: bad pattern: svn_remote[ __git_ps1_show_upstream:45: bad substitution To reproduce the problem, the __git_ps1_show_upstream function can be executed in a repository converted with git-svn. Both those errors are triggered by spaces after the '['. Zsh also doesn't support initializing an array with `local var=(...)`. This triggers the following error: __git_ps1_show_upstream:41: bad pattern: svn_upstream=(commit Use local -a var=(...) instead to make is compatible. This was introduced by 6d158cba (bash completion: Support "divergence from upstream" messages in __git_ps1), when the script was for bash only. Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com> Acked-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib/completion')
-rw-r--r--contrib/completion/git-prompt.sh7
1 files changed, 4 insertions, 3 deletions
diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
index 054c52e..d3de80f 100644
--- a/contrib/completion/git-prompt.sh
+++ b/contrib/completion/git-prompt.sh
@@ -124,7 +124,7 @@ __git_ps1_show_upstream ()
fi
;;
svn-remote.*.url)
- svn_remote[ $((${#svn_remote[@]} + 1)) ]="$value"
+ svn_remote[$((${#svn_remote[@]} + 1))]="$value"
svn_url_pattern+="\\|$value"
upstream=svn+git # default upstream is SVN if available, else git
;;
@@ -146,10 +146,11 @@ __git_ps1_show_upstream ()
svn*)
# get the upstream from the "git-svn-id: ..." in a commit message
# (git-svn uses essentially the same procedure internally)
- local svn_upstream=($(git log --first-parent -1 \
+ local -a svn_upstream
+ svn_upstream=($(git log --first-parent -1 \
--grep="^git-svn-id: \(${svn_url_pattern#??}\)" 2>/dev/null))
if [[ 0 -ne ${#svn_upstream[@]} ]]; then
- svn_upstream=${svn_upstream[ ${#svn_upstream[@]} - 2 ]}
+ svn_upstream=${svn_upstream[${#svn_upstream[@]} - 2]}
svn_upstream=${svn_upstream%@*}
local n_stop="${#svn_remote[@]}"
for ((n=1; n <= n_stop; n++)); do