git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] fetch: pass --no-write-fetch-head to subprocesses

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 8, 2023, 17:41 UTC
Message-ID
<xmqqwn3rta2c.fsf@gitster.g>
In-Reply-To
<20230308100438.908471-1-e@80x24.org>
Eric Wong <e@80x24.org> writes:
> Subject: Re: [PATCH] fetch: pass --no-write-fetch-head to subprocesses

I read the title as saying that "git fetch --recurse-submodules --no-write-fetch-head" should propagate the latter option down to fetches done in submodules, but looking at the added test, you are addressing a different use case, aren't you? Or are you covering both "fetch: honor --no-write-fetch-head when fetching from multiple remotes" and "fetch: pass --no-write-fetch-head down to submodules"?

> It seems a user would expect this option would work regardless
> of whether it's fetching from a single remote or many.
This hints that it is only the latter, but if we are covering both
 (1) the title we have here may be alright.
 (2) the proposed log message should state the change affects both
     (in a good way).
 (3) the other half may want to be tested in new test as well.
Thanks.
Show 40 quoted lines
> Signed-off-by: Eric Wong <e@80x24.org>
> ---
>  I haven't checked if there's other suitable options which could
>  go into add_options_to_argv(); hopefully someone else can check :>
>
>  builtin/fetch.c           | 2 ++
>  t/t5514-fetch-multiple.sh | 7 +++++++
>  2 files changed, 9 insertions(+)
>
> diff --git a/builtin/fetch.c b/builtin/fetch.c
> index a09606b472..78513f1708 100644
> --- a/builtin/fetch.c
> +++ b/builtin/fetch.c
> @@ -1880,6 +1880,8 @@ static void add_options_to_argv(struct strvec *argv)
>  		strvec_push(argv, "--ipv4");
>  	else if (family == TRANSPORT_FAMILY_IPV6)
>  		strvec_push(argv, "--ipv6");
> +	if (!write_fetch_head)
> +		strvec_push(argv, "--no-write-fetch-head");
>  }
>  
>  /* Fetch multiple remotes in parallel */
> diff --git a/t/t5514-fetch-multiple.sh b/t/t5514-fetch-multiple.sh
> index 54f422ced3..98f034aa77 100755
> --- a/t/t5514-fetch-multiple.sh
> +++ b/t/t5514-fetch-multiple.sh
> @@ -58,6 +58,13 @@ test_expect_success 'git fetch --all' '
>  	 test_cmp expect output)
>  '
>  
> +test_expect_success 'git fetch --all --no-write-fetch-head' '
> +	(cd test &&
> +	rm -f .git/FETCH_HEAD &&
> +	git fetch --all --no-write-fetch-head &&
> +	test_path_is_missing .git/FETCH_HEAD)
> +'
> +
>  test_expect_success 'git fetch --all should continue if a remote has errors' '
>  	(git clone one test2 &&
>  	 cd test2 &&
Previous: Eric WongNext: Eric Wong
Message 2 of 8 in “fetch: pass --no-write-fetch-head to subprocesses”
  1. fetch: pass --no-write-fetch-head to subprocessesEric Wong, Mar 8, 2023
  2. Junio C HamanoMar 8, 2023
  3. fetch: pass --no-write-fetch-head to subprocessesEric Wong, Mar 8, 2023
  4. Junio C HamanoMar 8, 2023
  5. Junio C HamanoMar 8, 2023
  6. Eric WongMar 8, 2023
  7. Junio C HamanoMar 9, 2023
  8. Jeff KingMar 9, 2023

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.