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>
This commit is contained in:

committed by
Junio C Hamano

parent
92758dd2a2
commit
d0583da838
@ -146,7 +146,8 @@ __git_ps1_show_upstream ()
|
|||||||
svn*)
|
svn*)
|
||||||
# get the upstream from the "git-svn-id: ..." in a commit message
|
# get the upstream from the "git-svn-id: ..." in a commit message
|
||||||
# (git-svn uses essentially the same procedure internally)
|
# (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))
|
--grep="^git-svn-id: \(${svn_url_pattern#??}\)" 2>/dev/null))
|
||||||
if [[ 0 -ne ${#svn_upstream[@]} ]]; then
|
if [[ 0 -ne ${#svn_upstream[@]} ]]; then
|
||||||
svn_upstream=${svn_upstream[${#svn_upstream[@]} - 2]}
|
svn_upstream=${svn_upstream[${#svn_upstream[@]} - 2]}
|
||||||
|
Reference in New Issue
Block a user