threads / patch / 66528

patcht0081: modernize the code testing whether a file exists

Subject: [PATCH] t0081: modernize the code testing whether a file exists

## tl;dr

With many applicants sending similar microprojects and making the same mistakes, mentors are repeating the same advice. Read the story.

replies: 8people: 4as markdown or json

Shashank S via GitGitGadget· Oct 14, 2026, 07:26 UTC · lore
From: Shashank <shashu8660@gmail.com>

Replace the old-style shell `test -f` command with Git's modern `test_path_is_file`.

This instance was found using: `git grep "test -[efd]" t/'

Signed-off-by: Shashank <shashu8660@gmail.com>
---
    [outreachy] t0081: Replace the old style 'test -f' to new
    'test_path_is_file'
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2254%2Fshashu8660%2Fupdate-t0081-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2254/shashu8660/update-t0081-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/2254
 t/t0081-find-pack.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to t/t0081-find-pack.sh +1 −1
diff --git a/t/t0081-find-pack.sh b/t/t0081-find-pack.sh
index ff9d56fbf1..7d5082c487 100755
--- a/t/t0081-find-pack.sh
+++ b/t/t0081-find-pack.sh
@@ -32,7 +32,7 @@ test_expect_success 'repack everything into a single packfile' '
 		".git/objects/pack/pack-"*".pack") true ;;
 		*) false ;;
 	esac &&
-	test -f "$head_commit_pack" &&
+	test_path_is_file "$head_commit_pack" &&
 
 	# Everything is in the same pack
 	test "$head_commit_pack" = "$head_tree_pack" &&

base-commit: 6de20f6092dcf9bdb1c8efe03db4b70c82b423dd
-- 
gitgitgadget
Usman Akinyemi· Oct 14, 2026, 09:49 UTC · re: Shashank S via GitGitGadget · lore

Re: [PATCH] t0081: modernize the code testing whether a file exists

Show 7 quoted lines
> From: Shashank <shashu8660@gmail.com>
>
> Replace the old-style shell `test -f` command with Git's modern
> `test_path_is_file`.
>
> This instance was found using:
> `git grep "test -[efd]" t/'
This is not necessary, remove it.
Show 23 quoted lines
>
> Signed-off-by: Shashank <shashu8660@gmail.com>
> ---
>     [outreachy] t0081: Replace the old style 'test -f' to new
>     'test_path_is_file'
>
> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2254%2Fshashu8660%2Fupdate-t0081-v1
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2254/shashu8660/update-t0081-v1
> Pull-Request: https://github.com/gitgitgadget/git/pull/2254
>
>  t/t0081-find-pack.sh | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/t/t0081-find-pack.sh b/t/t0081-find-pack.sh
> index ff9d56fbf1..7d5082c487 100755
> --- a/t/t0081-find-pack.sh
> +++ b/t/t0081-find-pack.sh
> @@ -32,7 +32,7 @@ test_expect_success 'repack everything into a single packfile' '
>                 ".git/objects/pack/pack-"*".pack") true ;;
>                 *) false ;;
>         esac &&
> -       test -f "$head_commit_pack" &&
> +       test_path_is_file "$head_commit_pack" &&
looks good to me.
Show 7 quoted lines
>
>         # Everything is in the same pack
>         test "$head_commit_pack" = "$head_tree_pack" &&
>
> base-commit: 6de20f6092dcf9bdb1c8efe03db4b70c82b423dd
> --
> gitgitgadget
Thanks.
Junio C Hamano· Oct 14, 2026, 21:47 UTC · re: Usman Akinyemi · lore

Re: [PATCH] t0081: modernize the code testing whether a file exists

Usman Akinyemi <usmanakinyemi202@gmail.com> writes:
Show 8 quoted lines
>> From: Shashank <shashu8660@gmail.com>
>>
>> Replace the old-style shell `test -f` command with Git's modern
>> `test_path_is_file`.
>>
>> This instance was found using:
>> `git grep "test -[efd]" t/'
> This is not necessary, remove it.

Since many candidates are working on similar microprojects (which is fine) and making the same mistakes (which is expected), perhaps mentors should tell them to read the review exchanges on other candidates' patches and learn from them, instead of or in addition to giving the same advice repeatedly.

Shashank S· Oct 15, 2026, 07:02 UTC · re: Junio C Hamano · lore

Re: [PATCH] t0081: modernize the code testing whether a file exists

On Thu, 15 Oct 2026 at 03:17, Junio C Hamano <gitster@pobox.com> wrote:
>
> Usman Akinyemi <usmanakinyemi202@gmail.com> writes:
>
> >> From: Shashank <shashu8660@gmail.com>
Show 5 quoted lines
> Since many candidates are working on similar microprojects (which is
> fine) and making the same mistakes (which is expected), perhaps mentors
> should tell them to read the review exchanges on other candidates'
> patches and learn from them, instead of or in addition to giving the
> same advice repeatedly.

thank you for the explanation and the review , from now on i will go through the other candidates patches and look in to them and mentor reviews in them and learn from that

Kaartic Sivaraam· Oct 15, 2026, 11:43 UTC · re: Junio C Hamano · lore

Re: [PATCH] t0081: modernize the code testing whether a file exists

On 10/15/26 03:17, Junio C Hamano wrote:
Show 14 quoted lines
> Usman Akinyemi <usmanakinyemi202@gmail.com> writes:
> >>> From: Shashank <shashu8660@gmail.com>
>>>
>>> Replace the old-style shell `test -f` command with Git's modern
>>> `test_path_is_file`.
>>>
>>> This instance was found using:
>>> `git grep "test -[efd]" t/'
>> This is not necessary, remove it.
> > Since many candidates are working on similar microprojects (which is
> fine) and making the same mistakes (which is expected), perhaps mentors
> should tell them to read the review exchanges on other candidates'
> patches and learn from them, instead of or in addition to giving the
> same advice repeatedly.
I agree that it is a good advice to ask candidate to read other candidates' patches. We do recommend this in our guide related to working on Microprojects:
 https://git.github.io/General-Microproject-Information/#research-existing-related-work
That said, I just wanted to highlight one thing. In the Microproject ideas page[1], we have the following for this specific idea:
  Notes
  - Start small: Pick a test file with just a few instances to convert
  - Run the test suite after your changes to ensure nothing breaks
  - Follow Git’s commit message style
  - Include which command you used to find the instances in your commit
    message
So, we can't really blame the candidates for including the command in the commit message. It is our mistake asking them to include it in the first place when we don't prefer it to be present there.
I raised a PR to fix that:
  https://github.com/git/git.github.io/pull/875
[1]: https://git.github.io/SoC-2026-Microprojects/
-- 
Sivaraam
Junio C Hamano· Oct 15, 2026, 17:10 UTC · re: Kaartic Sivaraam · lore

Re: [PATCH] t0081: modernize the code testing whether a file exists

Kaartic Sivaraam <kaartic.sivaraam@gmail.com> writes:
Show 18 quoted lines
> That said, I just wanted to highlight one thing. In the Microproject 
> ideas page[1], we have the following for this specific idea:
>
>    Notes
>
>    - Start small: Pick a test file with just a few instances to convert
>    - Run the test suite after your changes to ensure nothing breaks
>    - Follow Git’s commit message style
>    - Include which command you used to find the instances in your commit
>      message
>
> So, we can't really blame the candidates for including the command in 
> the commit message. It is our mistake asking them to include it in the 
> first place when we don't prefer it to be present there.
>
> I raised a PR to fix that:
>
>    https://github.com/git/git.github.io/pull/875

I do not think your update is taking us in the right direction, though. Recommend to have it under three-dash lines instead, perhaps?

Kaartic Sivaraam· Oct 23, 2026, 06:56 UTC · re: Junio C Hamano · lore

Re: [PATCH] t0081: modernize the code testing whether a file exists

On 10/15/26 22:40, Junio C Hamano wrote:
Show 7 quoted lines
> Kaartic Sivaraam <kaartic.sivaraam@gmail.com> writes:
> >> I raised a PR to fix that:
>>
>>     https://github.com/git/git.github.io/pull/875
> > I do not think your update is taking us in the right direction,
> though.  Recommend to have it under three-dash lines instead,
> perhaps?
Got it. Does the following change read better?
Show changes to links/mentoring/soc/SoC-2026-Microprojects.md +3 −2
diff --git a/links/mentoring/soc/SoC-2026-Microprojects.md b/links/mentoring/soc/SoC-2026-Microprojects.md
index 41354b50..17519e2d 100644
--- a/links/mentoring/soc/SoC-2026-Microprojects.md
+++ b/links/mentoring/soc/SoC-2026-Microprojects.md
@@ -49,8 +49,9 @@ with Git's dedicated test helpers like `test_path_is_file`.
 - Start small: Pick a test file with just a few instances to convert
 - Run the test suite after your changes to ensure nothing breaks
 - Follow Git's commit message style
-- You _do not need to_ include the command you used to find the instances
-  in your commit message
+- You can include the command you used to find the instances in your
+  cover letter or between the three-dash line and the diffstat, whichever
+  is appropriate. Do not mention it in your commit message

 #### Need Help?
 - Reference [this discussion](https://public-inbox.org/git/CAPig+cRfO8t1tdCL6MB4b9XopF3HkZ==hU83AFZ38b-2zsXDjQ@mail.gmail.com/)
-- 
Sivaraam
Shashank S· Oct 15, 2026, 06:51 UTC · re: Usman Akinyemi · lore

Re: [PATCH] t0081: modernize the code testing whether a file exists

On Wed, 14 Oct 2026 at 15:19, Usman Akinyemi <usmanakinyemi202@gmail.com> wrote:
Show 9 quoted lines
>
> > From: Shashank <shashu8660@gmail.com>
> >
> > Replace the old-style shell `test -f` command with Git's modern
> > `test_path_is_file`.
> >
> > This instance was found using:
> > `git grep "test -[efd]" t/'
> This is not necessary, remove it.
thank you for the review , i will remove it and i will submit patch v2
Shashank S via GitGitGadget· Oct 15, 2026, 10:47 UTC · re: Shashank S via GitGitGadget · lore

[PATCH v2] [Outreachy] t0081: modernize the code testing whether a file exists

From: Shashank <shashu8660@gmail.com>

Replace the old-style shell `test -f` command with Git's modern `test_path_is_file`.

Signed-off-by: Shashank <shashu8660@gmail.com>
---
    [outreachy] t0081: Replace the old style 'test -f' to new
    'test_path_is_file'
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2254%2Fshashu8660%2Fupdate-t0081-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2254/shashu8660/update-t0081-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/2254
Range-diff vs v1:
 1:  906c628765 ! 1:  d4807f2751 t0081: modernize the code testing whether a file exists
     @@ Metadata
      Author: Shashank <shashu8660@gmail.com>
      
       ## Commit message ##
     -    t0081: modernize the code testing whether a file exists
     +    [Outreachy] t0081: modernize the code testing whether a file exists
      
          Replace the old-style shell `test -f` command with Git's modern
          `test_path_is_file`.
      
     -    This instance was found using:
     -    `git grep "test -[efd]" t/'
     -
          Signed-off-by: Shashank <shashu8660@gmail.com>
      
       ## t/t0081-find-pack.sh ##
 t/t0081-find-pack.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to t/t0081-find-pack.sh +1 −1
diff --git a/t/t0081-find-pack.sh b/t/t0081-find-pack.sh
index ff9d56fbf1..7d5082c487 100755
--- a/t/t0081-find-pack.sh
+++ b/t/t0081-find-pack.sh
@@ -32,7 +32,7 @@ test_expect_success 'repack everything into a single packfile' '
 		".git/objects/pack/pack-"*".pack") true ;;
 		*) false ;;
 	esac &&
-	test -f "$head_commit_pack" &&
+	test_path_is_file "$head_commit_pack" &&
 
 	# Everything is in the same pack
 	test "$head_commit_pack" = "$head_tree_pack" &&

base-commit: 6de20f6092dcf9bdb1c8efe03db4b70c82b423dd
-- 
gitgitgadget

← back to recent threads