author | Kevin Ballard <kevin@sb.org> | |
Wed, 3 Nov 2010 06:26:24 +0000 (23:26 -0700) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Wed, 3 Nov 2010 19:51:26 +0000 (12:51 -0700) | ||
commit | a7eff1a87ad8cdcb93f60efc7969042bc3e669ee | |
tree | 1bb9d58f3560f299dc179b2508d47c6baee80d6d | tree | snapshot |
parent | c3fced64981e3d2700d83c0a6661ac347df5121e | commit | diff |
submodule: preserve all arguments exactly when recursing
Shell variables only hold strings, not lists of parameters,
so $orig_args after
orig_args="$@"
fails to remember where each parameter starts and ends, if
some include whitespace. So
git submodule update \
--reference='/var/lib/common objects.git' \
--recursive --init
becomes
git submodule update --reference=/var/lib/common \
objects.git --recursive --init
in the inner repositories. Use "git rev-parse --sq-quote" to
save parameters in quoted form ready for evaluation by the
shell, avoiding this problem.
Helped-By: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Kevin Ballard <kevin@sb.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Shell variables only hold strings, not lists of parameters,
so $orig_args after
orig_args="$@"
fails to remember where each parameter starts and ends, if
some include whitespace. So
git submodule update \
--reference='/var/lib/common objects.git' \
--recursive --init
becomes
git submodule update --reference=/var/lib/common \
objects.git --recursive --init
in the inner repositories. Use "git rev-parse --sq-quote" to
save parameters in quoted form ready for evaluation by the
shell, avoiding this problem.
Helped-By: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Kevin Ballard <kevin@sb.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-submodule.sh | diff | blob | history | |
t/t7407-submodule-foreach.sh | diff | blob | history |