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

Re: [PATCH 1/1] fetch: let --jobs=<n> parallelize --multiple, too

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Oct 4, 2019, 22:03 UTC
Message-ID
<nycvar.QRO.7.76.6.1910042356450.46@tvgsbejvaqbjf.bet>
In-Reply-To
<xmqqftk9870h.fsf@gitster-ct.c.googlers.com>
Hi Junio,
On Fri, 4 Oct 2019, Junio C Hamano wrote:
Show 26 quoted lines
> "Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
> writes:
>
> > +test_expect_success 'parallel' '
> > +	git remote add one ./bogus1 &&
> > +	git remote add two ./bogus2 &&
> > +
> > +	test_must_fail env GIT_TRACE="$PWD/trace" \
> > +		git fetch --jobs=2 --multiple one two 2>err &&
> > +	grep "2 tasks" trace &&
>
> I think this one expects to match this in run-command.c:
>
> 	trace_printf("run_processes_parallel: preparing to run up to %d tasks", n);
>
> > +	grep "one.*128" err &&
> > +	grep "two.*128" err
>
> and these expect to match this in fetch.c
>
> 		strbuf_addf(out, _("could not fetch '%s' (exit code: %d)\n"),
>
> It would have been nice to fellow contributors, if the grep patterns
> were written a bit more tightly.  It would allow people who debug
> test failure to more easily identify which message the patterns are
> trying to catch.

This is a two-edged sword: when those messages change (for whatever reason), the regression test will fail, too, but it actually wants to test the parallel fetch, not the trace message of `run_processes_parallel`.

So I tried to prevent such an unactionable regression test failure. But I see your reasoning, and I now thought about it and consider those error messages to be rather stable.

Will fix.
> In any case, the latter two needs to be guarded against
> gettext-poison, I would think.  Without addressing the vagueness of
> the pattern, at least the following needs to be squashed to help the
> CI.

Indeed. I missed this because the GitGitGadget PR build was all green. My guess is that I messed up the definition of that PR build (it is _not_ what's in `azure-pipelines.yml` because that would not work correctly when PRs target older commits). I _think_ I fixed it by setting `export GIT_TEST_GETTEXT_POISON=true` explicitly (previously I only set the `jobname`, expecting `ci/run-build-and-tests.sh` to pick up on that.

Thanks, Dscho

Show 26 quoted lines
>
> Thanks.
>
> ---
>  t/t5514-fetch-multiple.sh | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/t/t5514-fetch-multiple.sh b/t/t5514-fetch-multiple.sh
> index cce829b989..33f5220a53 100755
> --- a/t/t5514-fetch-multiple.sh
> +++ b/t/t5514-fetch-multiple.sh
> @@ -190,8 +190,8 @@ test_expect_success 'parallel' '
>  	test_must_fail env GIT_TRACE="$PWD/trace" \
>  		git fetch --jobs=2 --multiple one two 2>err &&
>  	grep "2 tasks" trace &&
> -	grep "one.*128" err &&
> -	grep "two.*128" err
> +	test_i18ngrep "one.*128" err &&
> +	test_i18ngrep "two.*128" err
>  '
>
>  test_done
> --
> 2.23.0-686-g3bf927a9c0
>
>
Previous: Junio C HamanoNext: Johannes Schindelin via GitGitGadget
Message 4 of 10 in “fetch --multiple: respect --jobs=”
  1. 0/1 fetch --multiple: respect --jobs=Johannes Schindelin via GitGitGadget, Oct 1, 2019
  2. 1/1 fetch: let --jobs=<n> parallelize --multiple, tooJohannes Schindelin via GitGitGadget, Oct 1, 2019
  3. Junio C HamanoOct 4, 2019
  4. Johannes SchindelinOct 4, 2019
  5. 0/1 fetch --multiple: respect --jobs=Johannes Schindelin via GitGitGadget, Oct 5, 2019
  6. 1/1 fetch: let --jobs=<n> parallelize --multiple, tooJohannes Schindelin via GitGitGadget, Oct 5, 2019
  7. Johannes SchindelinOct 6, 2019
  8. Junio C HamanoOct 7, 2019
  9. Johannes SchindelinOct 7, 2019
  10. Johannes SchindelinOct 7, 2019

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.