Volume XXII, number 280Wednesday, October 7, 2026Latest message 1 hour ago

The Git List

News and archive of git@vger.kernel.org, since April 2005

v2t/pack-refs-tests: use test_path_is_missing

2 messages between Mar 14, 2026 and Mar 14, 2026, from Ritesh Singh Jadoun, Junio C Hamano.

Plain Markdown or JSON for tools and agents. Diffs are folded; open one to read it.

Ritesh Singh JadounMar 14, 2026, 03:46 UTC on lore

The pack-refs tests currently use raw 'test -f' checks with negation. Update them to use Git's standard helper function test_path_is_missing for clearer failure reporting.

Signed-off-by: Ritesh Singh Jadoun <riteshjd75@gmail.com>
---
 t/pack-refs-tests.sh | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
Show changes to t/pack-refs-tests.sh +7 −7
diff --git a/t/pack-refs-tests.sh b/t/pack-refs-tests.sh
index dca0c77ca1..3cc4906f05 100644
--- a/t/pack-refs-tests.sh
+++ b/t/pack-refs-tests.sh
@@ -61,7 +61,7 @@ test_expect_success 'see if a branch still exists after git ${pack_refs} --prune
 test_expect_success 'see if git ${pack_refs} --prune remove ref files' '
 	git branch f &&
 	git ${pack_refs} --all --prune &&
-	! test_path_is_file .git/refs/heads/f
+	test_path_is_missing .git/refs/heads/f
 '
 
 test_expect_success 'see if git ${pack_refs} --prune removes empty dirs' '
@@ -113,14 +113,14 @@ test_expect_success 'test excluded refs are not packed' '
 	git ${pack_refs} --all --exclude "refs/heads/dont_pack*" &&
 	test_path_is_file .git/refs/heads/dont_pack1 &&
 	test_path_is_file .git/refs/heads/dont_pack2 &&
-	! test_path_is_file .git/refs/heads/pack_this'
+	test_path_is_missing .git/refs/heads/pack_this'
 
 test_expect_success 'test --no-exclude refs clears excluded refs' '
 	git branch dont_pack3 &&
 	git branch dont_pack4 &&
 	git ${pack_refs} --all --exclude "refs/heads/dont_pack*" --no-exclude &&
-	! test_path_is_file .git/refs/heads/dont_pack3 &&
-	! test_path_is_file .git/refs/heads/dont_pack4'
+	test_path_is_missing .git/refs/heads/dont_pack3 &&
+	test_path_is_missing .git/refs/heads/dont_pack4'
 
 test_expect_success 'test only included refs are packed' '
 	git branch pack_this1 &&
@@ -128,8 +128,8 @@ test_expect_success 'test only included refs are packed' '
 	git tag dont_pack5 &&
 	git ${pack_refs} --include "refs/heads/pack_this*" &&
 	test_path_is_file .git/refs/tags/dont_pack5 &&
-	! test_path_is_file .git/refs/heads/pack_this1 &&
-	! test_path_is_file .git/refs/heads/pack_this2'
+	test_path_is_missing .git/refs/heads/pack_this1 &&
+	test_path_is_missing .git/refs/heads/pack_this2'
 
 test_expect_success 'test --no-include refs clears included refs' '
 	git branch pack1 &&
@@ -147,7 +147,7 @@ test_expect_success 'see if up-to-date packed refs are preserved' '
 	git branch q &&
 	git ${pack_refs} --all --prune &&
 	git update-ref refs/heads/q refs/heads/q &&
-	! test_path_is_file .git/refs/heads/q
+	test_path_is_missing .git/refs/heads/q
 '
 
 test_expect_success 'pack, prune and repack' '
-- 
2.46.0.windows.1
Junio C HamanoMar 14, 2026, 05:00 UTC in reply to Ritesh Singh Jadoun on lore

Re: [PATCH v2] t/pack-refs-tests: use test_path_is_missing

Ritesh Singh Jadoun <riteshjd75@gmail.com> writes:
Show 8 quoted lines
> The pack-refs tests currently use raw 'test -f' checks with negation.
> Update them to use Git's standard helper function test_path_is_missing
> for clearer failure reporting.
>
> Signed-off-by: Ritesh Singh Jadoun <riteshjd75@gmail.com>
> ---
>  t/pack-refs-tests.sh | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
Show 11 quoted lines
> diff --git a/t/pack-refs-tests.sh b/t/pack-refs-tests.sh
> index dca0c77ca1..3cc4906f05 100644
> --- a/t/pack-refs-tests.sh
> +++ b/t/pack-refs-tests.sh
> @@ -61,7 +61,7 @@ test_expect_success 'see if a branch still exists after git ${pack_refs} --prune
>  test_expect_success 'see if git ${pack_refs} --prune remove ref files' '
>  	git branch f &&
>  	git ${pack_refs} --all --prune &&
> -	! test_path_is_file .git/refs/heads/f
> +	test_path_is_missing .git/refs/heads/f
>  '
This test in my tree looks like this:
        test_expect_success 'see if git ${pack_refs} --prune remove ref files' '
                git branch f &&
                git ${pack_refs} --all --prune &&
                ! test -f .git/refs/heads/f
        '

No patch that turns this instance of "! test -f" into an incorrect use of test_path_is_file helper, i.e., "! test_path_is_file", has ever been accepted to my tree. Which means that this [v2] will not apply to my tree.

I suspect that you have two patches on top of my tree, one is a botched attempt that turns "! test -f" into "! test_path_is_file", and the other one is an "oops, the previous one was a bad change, so fix it on top with another commit" that further changes it to "test_path_is_missing", and we are looking only at the latter patch.

We however do not work that way around here. Until a patch is accepted and merged to the 'next' branch, updates are expected to come as wholesale replacements. See Documentation/SubmittingPatches.

Even though no developer is perfect, when you are presenting your updated work, armed with wisdom borrowed from your reviewers' comments on your earlier attempts, you are expected to take the opportunity to pretend to have written a series of patches that are perfect logical progression towards the final shape of the code without detours, change of plans, and fixing earlier mistakes made in the series.

The final series accepted by the project will have to stay in our history for later developers to see in "git log" output to learn from, and a series being clean logical progression is a must for that to happen.

In this case, if what you have is indeed a pair of patches "one went into a wrong direction, the next corrects the course", then you would want to squash them into a single patch that turns "! test -f .git/refs/heads/f" that is in my tree into an improved form that is "test_path_is_missing". And send that as the second attempt (v2).

See also
    https://lore.kernel.org/git/xmqq34283b12.fsf@gitster.g/
Thanks.

Back to recent threads