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.

Reply via email to