On Tue, Jan 23 2018, Ævar Arnfjörð Bjarmason jotted: > I'm now just skipping quoting things like +refs/... on the > command-line, which as grepping the rest of the test suite shows is > fine, this eliminated the need for "fetch tests: double quote a > variable for interpolation" so I've ejected it. There's a segfault bug in 11/11, which wasn't found because the test suite doesn't test `git fetch <url>` just `git fetch <named>` and this is handled differently. I'll send a fix soon, but don't merge this down from pu for now. In order to test for that I brought that cmdline quoting patch back, I can't find a better way to do that, and in addition I have this similar WIP patch: diff --git a/t/t5510-fetch.sh b/t/t5510-fetch.sh index 2f5bd966be..8fe4f3c13b 100755 --- a/t/t5510-fetch.sh +++ b/t/t5510-fetch.sh @@ -549,13 +549,39 @@ set_config_tristate () { } test_configured_prune () { + test_configured_prune_guts "$@" "name" + test_configured_prune_guts "$@" "link" +} + +test_configured_prune_guts () { fetch_prune=$1 remote_origin_prune=$2 expected_branch=$3 expected_tag=$4 cmdline=$5 - - test_expect_success "prune fetch.prune=$1 remote.origin.prune=$2${5:+ $5}; branch:$3 tag:$4" ' + mode=$6 + + if ! test -e prune-guts-setup + then + test_expect_success 'prune_guts setup' ' + git -C one config remote.origin.url >one.remote-url && + git -C one config remote.origin.fetch >one.remote-fetch && + touch prune-guts-setup + ' + fi + + if test "$mode" = 'link' + then + remote_url="file://$(cat one.remote-url)" + remote_fetch="$(cat one.remote-fetch)" + cmdline_setup="\"$remote_url\" \"$remote_fetch\"" + if test "$cmdline" != "" + then + cmdline=$(printf "%s" "$cmdline" | sed -e 's! origin! "'"$remote_url"'"!g') + fi + fi + + test_expect_success "$mode prune fetch.prune=$1 remote.origin.prune=$2${5:+ $5}; branch:$3 tag:$4" ' # make sure a newbranch is there in . and also in one git branch -f newbranch && git tag -f newtag && @@ -563,7 +589,7 @@ test_configured_prune () { cd one && test_unconfig fetch.prune && test_unconfig remote.origin.prune && - git fetch && + git fetch '"$cmdline_setup"' && git rev-parse --verify refs/remotes/origin/newbranch && git rev-parse --verify refs/tags/newtag ) && It'll be amended a bit more, but the general idea is there, because of how this whole quoting mess looks like I have to resort to the above hack outside of the test setup.