Subject: Re: [PATCH v4 1/2] transport: die if server options are unsupported

From: SZEDER Gábor <[email-masked]>
Date: Fri, 12 Apr 2019 22:12:28 +0200

On Fri, Apr 12, 2019 at 12:51:21PM -0700, Jonathan Tan wrote:

[Reordering the diffs...]

> diff --git a/transport.c b/transport.c
> index e078812897..77446119da 100644
> --- a/transport.c
> +++ b/transport.c
> @@ -252,6 +252,14 @@ static int connect_setup(struct transport *transport, int for_push)
>  	return 0;
>  }
>  
> +static void die_if_server_options(struct transport *transport)
> +{
> +	if (!transport->server_options || !transport->server_options->nr)
> +		return;
> +	advise(_("see protocol.version in 'git help config' for more details"));
> +	die(_("server options require protocol version 2 or later"));

These two messages are translated ...

> diff --git a/t/t5702-protocol-v2.sh b/t/t5702-protocol-v2.sh
> index db4ae09f2f..1e8357a4c7 100755
> --- a/t/t5702-protocol-v2.sh
> +++ b/t/t5702-protocol-v2.sh
> @@ -182,6 +182,13 @@ test_expect_success 'server-options are sent when using ls-remote' '
>  	grep "server-option=world" log
>  '
>  
> +test_expect_success 'warn if using server-option with ls-remote with legacy protocol' '
> +	test_must_fail env GIT_TEST_PROTOCOL_VERSION=0 git -c protocol.version=0 \
> +		ls-remote -o hello -o world "file://$(pwd)/file_parent" master 2>err &&
> +
> +	grep "see protocol.version in" err &&
> +	grep "server options require protocol version 2 or later" err

... therefore these should be 'test_i18ngrep'.  This applies to the
other tests in this patch series as well.

> +'
>  
>  test_expect_success 'clone with file:// using protocol v2' '
>  	test_when_finished "rm -f log" &&
> @@ -251,6 +258,18 @@ test_expect_success 'server-options are sent when fetching' '
>  	grep "server-option=world" log
>  '
>  
> +test_expect_success 'warn if using server-option with fetch with legacy protocol' '
> +	test_when_finished "rm -rf temp_child" &&
> +
> +	git init temp_child &&
> +
> +	test_must_fail env GIT_TEST_PROTOCOL_VERSION=0 git -C temp_child -c protocol.version=0 \
> +		fetch -o hello -o world "file://$(pwd)/file_parent" master 2>err &&
> +
> +	grep "see protocol.version in" err &&
> +	grep "server options require protocol version 2 or later" err
> +'
> +
>  test_expect_success 'upload-pack respects config using protocol v2' '
>  	git init server &&
>  	write_script server/.git/hook <<-\EOF &&