On Thu, Dec 13 2018, Ævar Arnfjörð Bjarmason wrote:

Now that we have this maybe we should discuss why these tests show
different things:

> diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh
> index 086f2c40f6..8b1217ea26 100755
> --- a/t/t5500-fetch-pack.sh
> +++ b/t/t5500-fetch-pack.sh
> @@ -628,7 +628,10 @@ test_expect_success 'fetch-pack cannot fetch a raw sha1 
> that is not advertised a
>       test_commit -C server 6 &&
>
>       git init client &&
> -     test_must_fail git -C client fetch-pack ../server \
> +
> +     # Other protocol versions (e.g. 2) allow fetching an unadvertised
> +     # object, so run this test with the default protocol version (0).
> +     test_must_fail env GIT_TEST_PROTOCOL_VERSION= git -C client fetch-pack 
> ../server \
>               $(git -C server rev-parse refs/heads/master^) 2>err &&

What? So the equivalent of uploadpack.allowAnySHA1InWant=true is on for
v2 all the time?

>       test_i18ngrep "Server does not allow request for unadvertised object" 
> err
>  '
> @@ -788,7 +791,7 @@ test_expect_success 'shallow clone exclude tag two' '
>  '
>
>  test_expect_success 'fetch exclude tag one' '
> -     git -C shallow12 fetch --shallow-exclude one origin &&
> +     GIT_TEST_PROTOCOL_VERSION= git -C shallow12 fetch --shallow-exclude one 
> origin &&
>       git -C shallow12 log --pretty=tformat:%s origin/master >actual &&
>       test_write_lines three two >expected &&
>       test_cmp expected actual
> @@ -806,7 +809,7 @@ test_expect_success 'fetching deepen' '
>       git -C deepen log --pretty=tformat:%s master >actual &&
>       echo three >expected &&
>       test_cmp expected actual &&
> -     git -C deepen fetch --deepen=1 &&
> +     GIT_TEST_PROTOCOL_VERSION= git -C deepen fetch --deepen=1 &&
>       git -C deepen log --pretty=tformat:%s origin/master >actual &&
>       cat >expected <<-\EOF &&
>       four
> diff --git a/t/t5503-tagfollow.sh b/t/t5503-tagfollow.sh
> index 4ca48f0276..0e90a90294 100755
> --- a/t/t5503-tagfollow.sh
> +++ b/t/t5503-tagfollow.sh
> @@ -56,7 +56,7 @@ test_expect_success 'fetch A (new commit : 1 connection)' '
>       rm -f $U &&
>       (
>               cd cloned &&
> -             GIT_TRACE_PACKET=$UPATH git fetch &&
> +             GIT_TRACE_PACKET=$UPATH GIT_TEST_PROTOCOL_VERSION= git fetch &&
>               test $A = $(git rev-parse --verify origin/master)
>       ) &&
>       get_needs $U >actual &&
> @@ -86,7 +86,7 @@ test_expect_success 'fetch C, T (new branch, tag : 1 
> connection)' '
>       rm -f $U &&
>       (
>               cd cloned &&
> -             GIT_TRACE_PACKET=$UPATH git fetch &&
> +             GIT_TRACE_PACKET=$UPATH GIT_TEST_PROTOCOL_VERSION= git fetch &&
>               test $C = $(git rev-parse --verify origin/cat) &&
>               test $T = $(git rev-parse --verify tag1) &&
>               test $A = $(git rev-parse --verify tag1^0)
> @@ -122,7 +122,7 @@ test_expect_success 'fetch B, S (commit and tag : 1 
> connection)' '
>       rm -f $U &&
>       (
>               cd cloned &&
> -             GIT_TRACE_PACKET=$UPATH git fetch &&
> +             GIT_TRACE_PACKET=$UPATH GIT_TEST_PROTOCOL_VERSION= git fetch &&
>               test $B = $(git rev-parse --verify origin/master) &&
>               test $B = $(git rev-parse --verify tag2^0) &&
>               test $S = $(git rev-parse --verify tag2)
> @@ -146,7 +146,7 @@ test_expect_success 'new clone fetch master and tags' '
>               cd clone2 &&
>               git init &&
>               git remote add origin .. &&
> -             GIT_TRACE_PACKET=$UPATH git fetch &&
> +             GIT_TRACE_PACKET=$UPATH GIT_TEST_PROTOCOL_VERSION= git fetch &&
>               test $B = $(git rev-parse --verify origin/master) &&
>               test $S = $(git rev-parse --verify tag2) &&
>               test $B = $(git rev-parse --verify tag2^0) &&
> diff --git a/t/t5512-ls-remote.sh b/t/t5512-ls-remote.sh
> index ca69636fd5..7b480587c9 100755
> --- a/t/t5512-ls-remote.sh
> +++ b/t/t5512-ls-remote.sh
> @@ -223,7 +223,7 @@ test_expect_success 'ls-remote --symref' '
>       $(git rev-parse refs/tags/mark1.10)     refs/tags/mark1.10
>       $(git rev-parse refs/tags/mark1.2)      refs/tags/mark1.2
>       EOF
> -     git ls-remote --symref >actual &&
> +     GIT_TEST_PROTOCOL_VERSION= git ls-remote --symref >actual &&
>       test_cmp expect actual
>  '
>
> @@ -243,7 +243,7 @@ test_expect_failure 'ls-remote with filtered symref 
> (--heads)' '
>       1bd44cb9d13204b0fe1958db0082f5028a16eb3a        refs/heads/foo
>       1bd44cb9d13204b0fe1958db0082f5028a16eb3a        refs/heads/master
>       EOF
> -     git ls-remote --symref --heads . >actual &&
> +     GIT_TEST_PROTOCOL_VERSION= git ls-remote --symref --heads . >actual &&
>       test_cmp expect actual
>  '
>
> @@ -252,9 +252,9 @@ test_expect_success 'ls-remote --symref omits 
> filtered-out matches' '
>       1bd44cb9d13204b0fe1958db0082f5028a16eb3a        refs/heads/foo
>       1bd44cb9d13204b0fe1958db0082f5028a16eb3a        refs/heads/master
>       EOF
> -     git ls-remote --symref --heads . >actual &&
> +     GIT_TEST_PROTOCOL_VERSION=  git ls-remote --symref --heads . >actual &&
>       test_cmp expect actual &&
> -     git ls-remote --symref . "refs/heads/*" >actual &&
> +     GIT_TEST_PROTOCOL_VERSION= git ls-remote --symref . "refs/heads/*" 
> >actual &&
>       test_cmp expect actual
>  '
>
> diff --git a/t/t5515-fetch-merge-logic.sh b/t/t5515-fetch-merge-logic.sh
> index 36b0dbc01c..f095555c3e 100755
> --- a/t/t5515-fetch-merge-logic.sh
> +++ b/t/t5515-fetch-merge-logic.sh

This one should really be looked at by someone more familiar with
v2. Looks scary that we have different merge results with it.

> @@ -147,7 +147,7 @@ do
>                       do
>                               git update-ref -d "$refname" "$val"
>                       done
> -                     git fetch "$@" >/dev/null
> +                     GIT_TEST_PROTOCOL_VERSION= git fetch "$@" >/dev/null
>                       cat .git/FETCH_HEAD
>               } >"$actual_f" &&
>               git show-ref >"$actual_r" &&
> diff --git a/t/t5516-fetch-push.sh b/t/t5516-fetch-push.sh
> index 08cdee0b95..1d1b717cd5 100755
> --- a/t/t5516-fetch-push.sh
> +++ b/t/t5516-fetch-push.sh
> @@ -1129,7 +1129,7 @@ do
>       '
>  done
>
> -test_expect_success 'fetch exact SHA1' '
> +test_expect_success 'fetch exact SHA1 in protocol v0' '
>       mk_test testrepo heads/master hidden/one &&
>       git push testrepo master:refs/hidden/one &&
>       (
> @@ -1148,7 +1148,8 @@ test_expect_success 'fetch exact SHA1' '
>               test_must_fail git cat-file -t $the_commit &&
>
>               # fetching the hidden object should fail by default
> -             test_must_fail git fetch -v ../testrepo 
> $the_commit:refs/heads/copy 2>err &&
> +             test_must_fail env GIT_TEST_PROTOCOL_VERSION= \
> +                     git fetch -v ../testrepo $the_commit:refs/heads/copy 
> 2>err &&
>               test_i18ngrep "Server does not allow request for unadvertised 
> object" err &&
>               test_must_fail git rev-parse --verify refs/heads/copy &&
>
> @@ -1205,7 +1206,8 @@ do
>               mk_empty shallow &&
>               (
>                       cd shallow &&
> -                     test_must_fail git fetch --depth=1 ../testrepo/.git 
> $SHA1 &&
> +                     test_must_fail env GIT_TEST_PROTOCOL_VERSION= \
> +                             git fetch --depth=1 ../testrepo/.git $SHA1 &&
>                       git --git-dir=../testrepo/.git config 
> uploadpack.allowreachablesha1inwant true &&
>                       git fetch --depth=1 ../testrepo/.git $SHA1 &&
>                       git cat-file commit $SHA1
> @@ -1233,15 +1235,18 @@ do
>               mk_empty shallow &&
>               (
>                       cd shallow &&
> -                     test_must_fail ok=sigpipe git fetch ../testrepo/.git 
> $SHA1_3 &&
> -                     test_must_fail ok=sigpipe git fetch ../testrepo/.git 
> $SHA1_1 &&
> +                     test_must_fail ok=sigpipe env 
> GIT_TEST_PROTOCOL_VERSION= \
> +                             git fetch ../testrepo/.git $SHA1_3 &&
> +                     test_must_fail ok=sigpipe env 
> GIT_TEST_PROTOCOL_VERSION= \
> +                             git fetch ../testrepo/.git $SHA1_1 &&
>                       git --git-dir=../testrepo/.git config 
> uploadpack.allowreachablesha1inwant true &&
>                       git fetch ../testrepo/.git $SHA1_1 &&
>                       git cat-file commit $SHA1_1 &&
>                       test_must_fail git cat-file commit $SHA1_2 &&
>                       git fetch ../testrepo/.git $SHA1_2 &&
>                       git cat-file commit $SHA1_2 &&
> -                     test_must_fail ok=sigpipe git fetch ../testrepo/.git 
> $SHA1_3
> +                     test_must_fail ok=sigpipe env 
> GIT_TEST_PROTOCOL_VERSION= \
> +                             git fetch ../testrepo/.git $SHA1_3
>               )
>       '

Ditto all this stuff.

> [...]
> diff --git a/t/t7406-submodule-update.sh b/t/t7406-submodule-update.sh
> index e87164aa8f..a555e38845 100755
> --- a/t/t7406-submodule-update.sh
> +++ b/t/t7406-submodule-update.sh
> @@ -943,7 +943,8 @@ test_expect_success 'submodule update clone shallow 
> submodule outside of depth'
>               cd super3 &&
>               sed -e "s#url = ../#url = file://$pwd/#" <.gitmodules 
> >.gitmodules.tmp &&
>               mv -f .gitmodules.tmp .gitmodules &&
> -             test_must_fail git submodule update --init --depth=1 2>actual &&
> +             test_must_fail env GIT_TEST_PROTOCOL_VERSION= \
> +                     git submodule update --init --depth=1 2>actual &&
>               test_i18ngrep "Direct fetching of that commit failed." actual &&
>               git -C ../submodule config uploadpack.allowReachableSHA1InWant 
> true &&
>               git submodule update --init --depth=1 >actual &&

And this one and various other shallow things look odd, are shallow
fetches different under v2?

Reply via email to