public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox•com>
To: "Kevin Lyles via GitGitGadget" <gitgitgadget@gmail•com>
Cc: git@vger•kernel.org,  Derrick Stolee <stolee@gmail•com>,
	 Kevin Lyles <klyles+github@epic•com>,
	 Kevin Lyles <klyles@epic•com>
Subject: Re: [PATCH v3 1/2] Allow using stdin in run_on_* functions
Date: Tue, 03 Sep 2024 12:11:56 -0700	[thread overview]
Message-ID: <xmqqttewimbn.fsf@gitster.g> (raw)
In-Reply-To: <b310593aec24ff102e2d5cf29c1d8386adbce45d.1725386044.git.gitgitgadget@gmail.com> (Kevin Lyles via GitGitGadget's message of "Tue, 03 Sep 2024 17:54:03 +0000")

"Kevin Lyles via GitGitGadget" <gitgitgadget@gmail•com> writes:

> Subject: Re: [PATCH v3 1/2] Allow using stdin in run_on_* functions

Imagine that these two commits are applied and appear among hundreds
of other commits in the list of contributions.  Would this commit
title blend in and belong to others?

    $ git log --oneline --no-merges -100

cf. Documentation/SubmittingPatches:describe-changes.

At least, it should somehow hint that the patch is about updating
the t1092 test script.

    Subject: t1092: allow run_on_* functions to use standard input

or something.

> From: Kevin Lyles <klyles@epic•com>
>
> The 'run_on_sparse' and 'run_on_all' functions previously did not work
> correctly for commands accepting standard input.


Our convention is to first describe the status quo in the present
tense, so "previously did not" -> "do not".

It would be helpful to explain why they do not work, perhaps like
so:

    ... functions do not work for commands that consume their
    standard input, because they attempt to run the same command in
    multiple repositories that are set up differently to inspect
    their behaviour differences.

> This also indirectly
> affected 'test_all_match' and 'test_sparse_match'.

"affected" -> "affects".

> Now, we accept standard input and will send it to each command that we
> run. This does not impact using the functions for commands that don't
> need standard input.

And after presenting the observation on the status quo and pointing
out the issue we are going to address, it is our convention to write
what to do in imperative mood, as if we are ordering the codebase to
"become like so".  E.g.

    To allow these commands to consume the standard input, first
    slurp the contents fed from the standard input to a temporary
    file, and then run each attempt with its standard input
    redirected from the temporary file.  This way, these multiple
    attempts will all see the same contents from their standard
    input.

    Note that a command that does not read from the standard input
    does not have to redirect its standard input from </dev/null
    when using these run_on_* helper functions, as the standard
    input of the test environment is already connected to /dev/null.

or something, perhaps.


> Signed-off-by: Kevin Lyles <klyles@epic•com>
> ---
>  t/t1092-sparse-checkout-compatibility.sh | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/t/t1092-sparse-checkout-compatibility.sh b/t/t1092-sparse-checkout-compatibility.sh
> index 6fa7f5e9587..87953abf872 100755
> --- a/t/t1092-sparse-checkout-compatibility.sh
> +++ b/t/t1092-sparse-checkout-compatibility.sh
> @@ -179,22 +179,26 @@ init_repos_as_submodules () {
>  }
>  
>  run_on_sparse () {
> +	cat >run_on_sparse-input &&

Mixture of word_with_underscore-and-dash-separation look unexpected;
use "run-on-sparse-input" instead, as the output files seem to be
named that way?

>  	(
>  		cd sparse-checkout &&
>  		GIT_PROGRESS_DELAY=100000 "$@" >../sparse-checkout-out 2>../sparse-checkout-err
> -	) &&
> +	) <run_on_sparse-input &&
>  	(
>  		cd sparse-index &&
>  		GIT_PROGRESS_DELAY=100000 "$@" >../sparse-index-out 2>../sparse-index-err
> -	)
> +	) <run_on_sparse-input

Shouldn't the temporary file be removed at the end, or are the
callers expected to live with them?  Unless the test is about
"ls-files -u" or "status", that is usually OK.

>  }
>  
>  run_on_all () {
> +	cat >run_on_all-input &&
> +
>  	(
>  		cd full-checkout &&
>  		GIT_PROGRESS_DELAY=100000 "$@" >../full-checkout-out 2>../full-checkout-err
> -	) &&
> -	run_on_sparse "$@"
> +	) <run_on_all-input &&
> +	run_on_sparse "$@" <run_on_all-input
>  }
>  
>  test_all_match () {
> @@ -221,7 +225,7 @@ test_sparse_unstaged () {
>  	done
>  }
>  
> -# Usage: test_sprase_checkout_set "<c1> ... <cN>" "<s1> ... <sM>"
> +# Usage: test_sparse_checkout_set "<c1> ... <cN>" "<s1> ... <sM>"
>  # Verifies that "git sparse-checkout set <c1> ... <cN>" succeeds and
>  # leaves the sparse index in a state where <s1> ... <sM> are sparse
>  # directories (and <c1> ... <cN> are not).

  reply	other threads:[~2024-09-03 19:12 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-26 18:08 [PATCH] Mark `cat-file` sparse-index compatible Kevin Lyles via GitGitGadget
2024-08-29  1:59 ` Derrick Stolee
2024-08-30 21:10 ` [PATCH v2 0/2] Mark cat-file " Kevin Lyles via GitGitGadget
2024-08-30 21:10   ` [PATCH v2 1/2] Allow using stdin in run_on_* functions Kevin Lyles via GitGitGadget
2024-08-30 21:10   ` [PATCH v2 2/2] Mark 'git cat-file' sparse-index compatible Kevin Lyles via GitGitGadget
2024-09-03 14:17     ` Derrick Stolee
2024-09-03 17:21       ` Junio C Hamano
2024-09-03 17:54   ` [PATCH v3 0/2] " Kevin Lyles via GitGitGadget
2024-09-03 17:54     ` [PATCH v3 1/2] Allow using stdin in run_on_* functions Kevin Lyles via GitGitGadget
2024-09-03 19:11       ` Junio C Hamano [this message]
2024-09-03 17:54     ` [PATCH v3 2/2] Mark 'git cat-file' sparse-index compatible Kevin Lyles via GitGitGadget
2024-09-03 19:19       ` Junio C Hamano
2024-09-03 22:06     ` [PATCH v4 0/2] builtin/cat-file: mark " Kevin Lyles via GitGitGadget
2024-09-03 22:06       ` [PATCH v4 1/2] t1092: allow run_on_* functions to use standard input Kevin Lyles via GitGitGadget
2024-09-04 16:23         ` Junio C Hamano
2024-09-03 22:06       ` [PATCH v4 2/2] builtin/cat-file: mark 'git cat-file' sparse-index compatible Kevin Lyles via GitGitGadget
2024-09-04 16:35         ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqttewimbn.fsf@gitster.g \
    --to=gitster@pobox$(echo .)com \
    --cc=git@vger$(echo .)kernel.org \
    --cc=gitgitgadget@gmail$(echo .)com \
    --cc=klyles+github@epic$(echo .)com \
    --cc=klyles@epic$(echo .)com \
    --cc=stolee@gmail$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox