зеркало из https://github.com/microsoft/git.git
t7005-editor: quote filename to fix whitespace-issue
Commit 4362da078e
(t7005-editor: get rid of the SPACES_IN_FILENAMES
prereq, 2018-05-14) removed code for detecting whether spaces in
filenames work. Since we rely on spaces throughout the test suite
("trash directory.t1234-foo"), testing whether we can use the filename
"e space.sh" was redundant and unnecessary.
In simplifying the code, though, this introduced a regression around how
spaces are handled, not in the /name/ of the editor script, but /in/ the
script itself. The script just does `echo space >$1`, where $1 is for
example "/foo/t/trash directory.t7005-editor/.git/COMMIT_EDITMSG".
With most shells, or with Bash in posix mode, $1 will not be subjected
to field splitting. But if we invoke Bash directly, which will happen if
we build Git with SHELL_PATH=/bin/bash, it will detect and complain
about an "ambiguous redirect". More details can be found in [1], thanks
to SZEDER Gábor.
Make sure that the editor script quotes "$1" to remove the ambiguity.
[1] https://public-inbox.org/git/20180926121107.GH27036@localhost/
Signed-off-by: Alexander Pyhalov <apyhalov@gmail.com>
Commit-message-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
53f9a3e157
Коммит
b1492bf315
|
@ -112,7 +112,7 @@ do
|
|||
done
|
||||
|
||||
test_expect_success 'editor with a space' '
|
||||
echo "echo space >\$1" >"e space.sh" &&
|
||||
echo "echo space >\"\$1\"" >"e space.sh" &&
|
||||
chmod a+x "e space.sh" &&
|
||||
GIT_EDITOR="./e\ space.sh" git commit --amend &&
|
||||
test space = "$(git show -s --pretty=format:%s)"
|
||||
|
|
Загрузка…
Ссылка в новой задаче