1
0
mirror of https://github.com/git/git.git synced 2024-09-29 03:51:25 +02:00

fix portability issues with $ in double quotes

Using a dollar sign in double quotes isn't portable. Escape them with
a backslash or replace the double quotes with single quotes.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Stephen Boyd 2010-01-26 15:08:31 -08:00 committed by Junio C Hamano
parent 24072c0256
commit 9524cf2993
12 changed files with 52 additions and 52 deletions

@ -462,11 +462,11 @@ if [ "$filter_tag_name" ]; then
"$new_sha1" "$new_ref" "$new_sha1" "$new_ref"
git cat-file tag "$ref" | git cat-file tag "$ref" |
sed -n \ sed -n \
-e "1,/^$/{ -e '1,/^$/{
/^object /d /^object /d
/^type /d /^type /d
/^tag /d /^tag /d
}" \ }' \
-e '/^-----BEGIN PGP SIGNATURE-----/q' \ -e '/^-----BEGIN PGP SIGNATURE-----/q' \
-e 'p' ) | -e 'p' ) |
git mktag) || git mktag) ||

@ -320,7 +320,7 @@ EOF
else else
# plain-old CGI # plain-old CGI
resolve_full_httpd resolve_full_httpd
list_mods=$(echo "$full_httpd" | sed "s/-f$/-l/") list_mods=$(echo "$full_httpd" | sed 's/-f$/-l/')
$list_mods | sane_grep 'mod_cgi\.c' >/dev/null 2>&1 || \ $list_mods | sane_grep 'mod_cgi\.c' >/dev/null 2>&1 || \
if test -f "$module_path/mod_cgi.so" if test -f "$module_path/mod_cgi.so"
then then

@ -407,7 +407,7 @@ update_squash_messages () {
} }
peek_next_command () { peek_next_command () {
sed -n -e "/^#/d" -e "/^$/d" -e "s/ .*//p" -e "q" < "$TODO" sed -n -e "/^#/d" -e '/^$/d' -e "s/ .*//p" -e "q" < "$TODO"
} }
# A squash/fixup has failed. Prepare the long version of the squash # A squash/fixup has failed. Prepare the long version of the squash

@ -32,8 +32,8 @@ test_expect_success rebase '
git checkout side && git checkout side &&
git rebase master && git rebase master &&
git cat-file commit HEAD | sed -e "1,/^$/d" >actual && git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
git cat-file commit side@{1} | sed -e "1,/^$/d" >expect && git cat-file commit side@{1} | sed -e "1,/^\$/d" >expect &&
test_cmp expect actual test_cmp expect actual
' '

@ -93,9 +93,9 @@ test_expect_success 'extra headers' '
git config --add format.headers "Cc: S. E. Cipient <scipient@example.com> git config --add format.headers "Cc: S. E. Cipient <scipient@example.com>
" && " &&
git format-patch --stdout master..side > patch2 && git format-patch --stdout master..side > patch2 &&
sed -e "/^$/q" patch2 > hdrs2 && sed -e "/^\$/q" patch2 > hdrs2 &&
grep "^To: R. E. Cipient <rcipient@example.com>$" hdrs2 && grep "^To: R. E. Cipient <rcipient@example.com>\$" hdrs2 &&
grep "^Cc: S. E. Cipient <scipient@example.com>$" hdrs2 grep "^Cc: S. E. Cipient <scipient@example.com>\$" hdrs2
' '
@ -104,9 +104,9 @@ test_expect_success 'extra headers without newlines' '
git config --replace-all format.headers "To: R. E. Cipient <rcipient@example.com>" && git config --replace-all format.headers "To: R. E. Cipient <rcipient@example.com>" &&
git config --add format.headers "Cc: S. E. Cipient <scipient@example.com>" && git config --add format.headers "Cc: S. E. Cipient <scipient@example.com>" &&
git format-patch --stdout master..side >patch3 && git format-patch --stdout master..side >patch3 &&
sed -e "/^$/q" patch3 > hdrs3 && sed -e "/^\$/q" patch3 > hdrs3 &&
grep "^To: R. E. Cipient <rcipient@example.com>$" hdrs3 && grep "^To: R. E. Cipient <rcipient@example.com>\$" hdrs3 &&
grep "^Cc: S. E. Cipient <scipient@example.com>$" hdrs3 grep "^Cc: S. E. Cipient <scipient@example.com>\$" hdrs3
' '
@ -115,32 +115,32 @@ test_expect_success 'extra headers with multiple To:s' '
git config --replace-all format.headers "To: R. E. Cipient <rcipient@example.com>" && git config --replace-all format.headers "To: R. E. Cipient <rcipient@example.com>" &&
git config --add format.headers "To: S. E. Cipient <scipient@example.com>" && git config --add format.headers "To: S. E. Cipient <scipient@example.com>" &&
git format-patch --stdout master..side > patch4 && git format-patch --stdout master..side > patch4 &&
sed -e "/^$/q" patch4 > hdrs4 && sed -e "/^\$/q" patch4 > hdrs4 &&
grep "^To: R. E. Cipient <rcipient@example.com>,$" hdrs4 && grep "^To: R. E. Cipient <rcipient@example.com>,\$" hdrs4 &&
grep "^ *S. E. Cipient <scipient@example.com>$" hdrs4 grep "^ *S. E. Cipient <scipient@example.com>\$" hdrs4
' '
test_expect_success 'additional command line cc' ' test_expect_success 'additional command line cc' '
git config --replace-all format.headers "Cc: R. E. Cipient <rcipient@example.com>" && git config --replace-all format.headers "Cc: R. E. Cipient <rcipient@example.com>" &&
git format-patch --cc="S. E. Cipient <scipient@example.com>" --stdout master..side | sed -e "/^$/q" >patch5 && git format-patch --cc="S. E. Cipient <scipient@example.com>" --stdout master..side | sed -e "/^\$/q" >patch5 &&
grep "^Cc: R. E. Cipient <rcipient@example.com>,$" patch5 && grep "^Cc: R. E. Cipient <rcipient@example.com>,\$" patch5 &&
grep "^ *S. E. Cipient <scipient@example.com>$" patch5 grep "^ *S. E. Cipient <scipient@example.com>\$" patch5
' '
test_expect_success 'command line headers' ' test_expect_success 'command line headers' '
git config --unset-all format.headers && git config --unset-all format.headers &&
git format-patch --add-header="Cc: R. E. Cipient <rcipient@example.com>" --stdout master..side | sed -e "/^$/q" >patch6 && git format-patch --add-header="Cc: R. E. Cipient <rcipient@example.com>" --stdout master..side | sed -e "/^\$/q" >patch6 &&
grep "^Cc: R. E. Cipient <rcipient@example.com>$" patch6 grep "^Cc: R. E. Cipient <rcipient@example.com>\$" patch6
' '
test_expect_success 'configuration headers and command line headers' ' test_expect_success 'configuration headers and command line headers' '
git config --replace-all format.headers "Cc: R. E. Cipient <rcipient@example.com>" && git config --replace-all format.headers "Cc: R. E. Cipient <rcipient@example.com>" &&
git format-patch --add-header="Cc: S. E. Cipient <scipient@example.com>" --stdout master..side | sed -e "/^$/q" >patch7 && git format-patch --add-header="Cc: S. E. Cipient <scipient@example.com>" --stdout master..side | sed -e "/^\$/q" >patch7 &&
grep "^Cc: R. E. Cipient <rcipient@example.com>,$" patch7 && grep "^Cc: R. E. Cipient <rcipient@example.com>,\$" patch7 &&
grep "^ *S. E. Cipient <scipient@example.com>$" patch7 grep "^ *S. E. Cipient <scipient@example.com>\$" patch7
' '
test_expect_success 'multiple files' ' test_expect_success 'multiple files' '
@ -406,9 +406,9 @@ test_expect_success 'cover-letter inherits diff options' '
git mv file foo && git mv file foo &&
git commit -m foo && git commit -m foo &&
git format-patch --cover-letter -1 && git format-patch --cover-letter -1 &&
! grep "file => foo .* 0 *$" 0000-cover-letter.patch && ! grep "file => foo .* 0 *\$" 0000-cover-letter.patch &&
git format-patch --cover-letter -1 -M && git format-patch --cover-letter -1 -M &&
grep "file => foo .* 0 *$" 0000-cover-letter.patch grep "file => foo .* 0 *\$" 0000-cover-letter.patch
' '
@ -425,7 +425,7 @@ EOF
test_expect_success 'shortlog of cover-letter wraps overly-long onelines' ' test_expect_success 'shortlog of cover-letter wraps overly-long onelines' '
git format-patch --cover-letter -2 && git format-patch --cover-letter -2 &&
sed -e "1,/A U Thor/d" -e "/^$/q" < 0000-cover-letter.patch > output && sed -e "1,/A U Thor/d" -e "/^\$/q" < 0000-cover-letter.patch > output &&
test_cmp expect output test_cmp expect output
' '
@ -450,7 +450,7 @@ EOF
test_expect_success 'format-patch respects -U' ' test_expect_success 'format-patch respects -U' '
git format-patch -U4 -2 && git format-patch -U4 -2 &&
sed -e "1,/^$/d" -e "/^+5/q" < 0001-This-is-an-excessively-long-subject-line-for-a-messa.patch > output && sed -e "1,/^\$/d" -e "/^+5/q" < 0001-This-is-an-excessively-long-subject-line-for-a-messa.patch > output &&
test_cmp expect output test_cmp expect output
' '
@ -471,7 +471,7 @@ EOF
test_expect_success 'format-patch -p suppresses stat' ' test_expect_success 'format-patch -p suppresses stat' '
git format-patch -p -2 && git format-patch -p -2 &&
sed -e "1,/^$/d" -e "/^+5/q" < 0001-This-is-an-excessively-long-subject-line-for-a-messa.patch > output && sed -e "1,/^\$/d" -e "/^+5/q" < 0001-This-is-an-excessively-long-subject-line-for-a-messa.patch > output &&
test_cmp expect output test_cmp expect output
' '

@ -37,11 +37,11 @@ test_expect_success setup '
# patch-2 is the same as patch-1 but is based # patch-2 is the same as patch-1 but is based
# on a version that already has whitespace fixed, # on a version that already has whitespace fixed,
# and does not introduce whitespace breakages. # and does not introduce whitespace breakages.
sed -e "s/ $//" patch-1 >patch-2 && sed -e "s/ \$//" patch-1 >patch-2 &&
# If all whitespace breakages are fixed the contents # If all whitespace breakages are fixed the contents
# should look like file-fixed # should look like file-fixed
sed -e "s/ $//" file-1 >file-fixed sed -e "s/ \$//" file-1 >file-fixed
' '

@ -302,7 +302,7 @@ test_expect_success 'am --committer-date-is-author-date' '
git checkout first && git checkout first &&
test_tick && test_tick &&
git am --committer-date-is-author-date patch1 && git am --committer-date-is-author-date patch1 &&
git cat-file commit HEAD | sed -e "/^$/q" >head1 && git cat-file commit HEAD | sed -e "/^\$/q" >head1 &&
at=$(sed -ne "/^author /s/.*> //p" head1) && at=$(sed -ne "/^author /s/.*> //p" head1) &&
ct=$(sed -ne "/^committer /s/.*> //p" head1) && ct=$(sed -ne "/^committer /s/.*> //p" head1) &&
test "$at" = "$ct" test "$at" = "$ct"
@ -312,7 +312,7 @@ test_expect_success 'am without --committer-date-is-author-date' '
git checkout first && git checkout first &&
test_tick && test_tick &&
git am patch1 && git am patch1 &&
git cat-file commit HEAD | sed -e "/^$/q" >head1 && git cat-file commit HEAD | sed -e "/^\$/q" >head1 &&
at=$(sed -ne "/^author /s/.*> //p" head1) && at=$(sed -ne "/^author /s/.*> //p" head1) &&
ct=$(sed -ne "/^committer /s/.*> //p" head1) && ct=$(sed -ne "/^committer /s/.*> //p" head1) &&
test "$at" != "$ct" test "$at" != "$ct"
@ -326,7 +326,7 @@ test_expect_success 'am --ignore-date' '
git checkout first && git checkout first &&
test_tick && test_tick &&
git am --ignore-date patch1 && git am --ignore-date patch1 &&
git cat-file commit HEAD | sed -e "/^$/q" >head1 && git cat-file commit HEAD | sed -e "/^\$/q" >head1 &&
at=$(sed -ne "/^author /s/.*> //p" head1) && at=$(sed -ne "/^author /s/.*> //p" head1) &&
echo "$at" | grep "+0000" echo "$at" | grep "+0000"
' '

@ -255,7 +255,7 @@ EOF
test_expect_success 'log --graph with merge' ' test_expect_success 'log --graph with merge' '
git log --graph --date-order --pretty=tformat:%s | git log --graph --date-order --pretty=tformat:%s |
sed "s/ *$//" >actual && sed "s/ *\$//" >actual &&
test_cmp expect actual test_cmp expect actual
' '
@ -315,7 +315,7 @@ EOF
test_expect_success 'log --graph with full output' ' test_expect_success 'log --graph with full output' '
git log --graph --date-order --pretty=short | git log --graph --date-order --pretty=short |
git name-rev --name-only --stdin | git name-rev --name-only --stdin |
sed "s/Merge:.*/Merge: A B/;s/ *$//" >actual && sed "s/Merge:.*/Merge: A B/;s/ *\$//" >actual &&
test_cmp expect actual test_cmp expect actual
' '
@ -383,7 +383,7 @@ EOF
test_expect_success 'log --graph with merge' ' test_expect_success 'log --graph with merge' '
git log --graph --date-order --pretty=tformat:%s | git log --graph --date-order --pretty=tformat:%s |
sed "s/ *$//" >actual && sed "s/ *\$//" >actual &&
test_cmp expect actual test_cmp expect actual
' '

@ -146,8 +146,8 @@ test_expect_success 'binary files cannot be merged' '
grep "Cannot merge binary files" merge.err grep "Cannot merge binary files" merge.err
' '
sed -e "s/deerit.$/deerit;/" -e "s/me;$/me./" < new5.txt > new6.txt sed -e "s/deerit.\$/deerit;/" -e "s/me;\$/me./" < new5.txt > new6.txt
sed -e "s/deerit.$/deerit,/" -e "s/me;$/me,/" < new5.txt > new7.txt sed -e "s/deerit.\$/deerit,/" -e "s/me;\$/me,/" < new5.txt > new7.txt
test_expect_success 'MERGE_ZEALOUS simplifies non-conflicts' ' test_expect_success 'MERGE_ZEALOUS simplifies non-conflicts' '

@ -150,7 +150,7 @@ EOF
test_expect_success '--signoff' ' test_expect_success '--signoff' '
echo "yet another content *narf*" >> foo && echo "yet another content *narf*" >> foo &&
echo "zort" | git commit -s -F - foo && echo "zort" | git commit -s -F - foo &&
git cat-file commit HEAD | sed "1,/^$/d" > output && git cat-file commit HEAD | sed "1,/^\$/d" > output &&
test_cmp expect output test_cmp expect output
' '

@ -186,8 +186,8 @@ test_expect_success 'Prompting works' '
--smtp-server="$(pwd)/fake.sendmail" \ --smtp-server="$(pwd)/fake.sendmail" \
$patches \ $patches \
2>errors && 2>errors &&
grep "^From: Example <from@example.com>$" msgtxt1 && grep "^From: Example <from@example.com>\$" msgtxt1 &&
grep "^To: to@example.com$" msgtxt1 grep "^To: to@example.com\$" msgtxt1
' '
test_expect_success 'cccmd works' ' test_expect_success 'cccmd works' '
@ -236,7 +236,7 @@ test_expect_success 'Author From: in message body' '
--to=nobody@example.com \ --to=nobody@example.com \
--smtp-server="$(pwd)/fake.sendmail" \ --smtp-server="$(pwd)/fake.sendmail" \
$patches && $patches &&
sed "1,/^$/d" < msgtxt1 > msgbody1 sed "1,/^\$/d" < msgtxt1 > msgbody1
grep "From: A <author@example.com>" msgbody1 grep "From: A <author@example.com>" msgbody1
' '
@ -247,7 +247,7 @@ test_expect_success 'Author From: not in message body' '
--to=nobody@example.com \ --to=nobody@example.com \
--smtp-server="$(pwd)/fake.sendmail" \ --smtp-server="$(pwd)/fake.sendmail" \
$patches && $patches &&
sed "1,/^$/d" < msgtxt1 > msgbody1 sed "1,/^\$/d" < msgtxt1 > msgbody1
! grep "From: A <author@example.com>" msgbody1 ! grep "From: A <author@example.com>" msgbody1
' '

@ -96,7 +96,7 @@ EOF
test_expect_success 'pserver authentication' \ test_expect_success 'pserver authentication' \
'cat request-anonymous | git-cvsserver pserver >log 2>&1 && 'cat request-anonymous | git-cvsserver pserver >log 2>&1 &&
sed -ne \$p log | grep "^I LOVE YOU$"' sed -ne \$p log | grep "^I LOVE YOU\$"'
test_expect_success 'pserver authentication failure (non-anonymous user)' \ test_expect_success 'pserver authentication failure (non-anonymous user)' \
'if cat request-git | git-cvsserver pserver >log 2>&1 'if cat request-git | git-cvsserver pserver >log 2>&1
@ -105,11 +105,11 @@ test_expect_success 'pserver authentication failure (non-anonymous user)' \
else else
true true
fi && fi &&
sed -ne \$p log | grep "^I HATE YOU$"' sed -ne \$p log | grep "^I HATE YOU\$"'
test_expect_success 'pserver authentication (login)' \ test_expect_success 'pserver authentication (login)' \
'cat login-anonymous | git-cvsserver pserver >log 2>&1 && 'cat login-anonymous | git-cvsserver pserver >log 2>&1 &&
sed -ne \$p log | grep "^I LOVE YOU$"' sed -ne \$p log | grep "^I LOVE YOU\$"'
test_expect_success 'pserver authentication failure (login/non-anonymous user)' \ test_expect_success 'pserver authentication failure (login/non-anonymous user)' \
'if cat login-git | git-cvsserver pserver >log 2>&1 'if cat login-git | git-cvsserver pserver >log 2>&1
@ -118,7 +118,7 @@ test_expect_success 'pserver authentication failure (login/non-anonymous user)'
else else
true true
fi && fi &&
sed -ne \$p log | grep "^I HATE YOU$"' sed -ne \$p log | grep "^I HATE YOU\$"'
# misuse pserver authentication for testing of req_Root # misuse pserver authentication for testing of req_Root
@ -156,7 +156,7 @@ test_expect_success 'req_Root failure (conflicting roots)' \
test_expect_success 'req_Root (strict paths)' \ test_expect_success 'req_Root (strict paths)' \
'cat request-anonymous | git-cvsserver --strict-paths pserver "$SERVERDIR" >log 2>&1 && 'cat request-anonymous | git-cvsserver --strict-paths pserver "$SERVERDIR" >log 2>&1 &&
sed -ne \$p log | grep "^I LOVE YOU$"' sed -ne \$p log | grep "^I LOVE YOU\$"'
test_expect_success 'req_Root failure (strict-paths)' ' test_expect_success 'req_Root failure (strict-paths)' '
! cat request-anonymous | ! cat request-anonymous |
@ -165,7 +165,7 @@ test_expect_success 'req_Root failure (strict-paths)' '
test_expect_success 'req_Root (w/o strict-paths)' \ test_expect_success 'req_Root (w/o strict-paths)' \
'cat request-anonymous | git-cvsserver pserver "$WORKDIR/" >log 2>&1 && 'cat request-anonymous | git-cvsserver pserver "$WORKDIR/" >log 2>&1 &&
sed -ne \$p log | grep "^I LOVE YOU$"' sed -ne \$p log | grep "^I LOVE YOU\$"'
test_expect_success 'req_Root failure (w/o strict-paths)' ' test_expect_success 'req_Root failure (w/o strict-paths)' '
! cat request-anonymous | ! cat request-anonymous |
@ -183,7 +183,7 @@ EOF
test_expect_success 'req_Root (base-path)' \ test_expect_success 'req_Root (base-path)' \
'cat request-base | git-cvsserver --strict-paths --base-path "$WORKDIR/" pserver "$SERVERDIR" >log 2>&1 && 'cat request-base | git-cvsserver --strict-paths --base-path "$WORKDIR/" pserver "$SERVERDIR" >log 2>&1 &&
sed -ne \$p log | grep "^I LOVE YOU$"' sed -ne \$p log | grep "^I LOVE YOU\$"'
test_expect_success 'req_Root failure (base-path)' ' test_expect_success 'req_Root failure (base-path)' '
! cat request-anonymous | ! cat request-anonymous |
@ -194,14 +194,14 @@ GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled false || exit 1
test_expect_success 'req_Root (export-all)' \ test_expect_success 'req_Root (export-all)' \
'cat request-anonymous | git-cvsserver --export-all pserver "$WORKDIR" >log 2>&1 && 'cat request-anonymous | git-cvsserver --export-all pserver "$WORKDIR" >log 2>&1 &&
sed -ne \$p log | grep "^I LOVE YOU$"' sed -ne \$p log | grep "^I LOVE YOU\$"'
test_expect_success 'req_Root failure (export-all w/o whitelist)' \ test_expect_success 'req_Root failure (export-all w/o whitelist)' \
'! (cat request-anonymous | git-cvsserver --export-all pserver >log 2>&1 || false)' '! (cat request-anonymous | git-cvsserver --export-all pserver >log 2>&1 || false)'
test_expect_success 'req_Root (everything together)' \ test_expect_success 'req_Root (everything together)' \
'cat request-base | git-cvsserver --export-all --strict-paths --base-path "$WORKDIR/" pserver "$SERVERDIR" >log 2>&1 && 'cat request-base | git-cvsserver --export-all --strict-paths --base-path "$WORKDIR/" pserver "$SERVERDIR" >log 2>&1 &&
sed -ne \$p log | grep "^I LOVE YOU$"' sed -ne \$p log | grep "^I LOVE YOU\$"'
GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled true || exit 1 GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled true || exit 1