Git development
 help / color / mirror / Atom feed
* [PATCH] t7703: ignore 'total' line when comparing ls -l output
@ 2026-05-04 10:14 Joerg Thalheim
  2026-05-05  6:02 ` Patrick Steinhardt
  0 siblings, 1 reply; 2+ messages in thread
From: Joerg Thalheim @ 2026-05-04 10:14 UTC (permalink / raw)
  To: git; +Cc: Patrick Steinhardt, Junio C Hamano, Jörg Thalheim

From: Jörg Thalheim <joerg@thalheim.io>

The 'total N' header from ls -l reports the block count, which on
copy-on-write or compressing filesystems such as ZFS can change between
two back-to-back invocations even when the directory contents are
identical. The MIDX retention checks introduced in 6ce9d558ce
(midx-write: skip rewriting MIDX with --stdin-packs unless needed,
2025-12-11) compare full ls -l output and thus fail spuriously on such
filesystems. Strip the header line before comparing.

Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
---
 t/t7703-repack-geometric.sh | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/t/t7703-repack-geometric.sh b/t/t7703-repack-geometric.sh
index 04d5d8fc33..9b5a428620 100755
--- a/t/t7703-repack-geometric.sh
+++ b/t/t7703-repack-geometric.sh
@@ -299,9 +299,9 @@ test_expect_success '--geometric --write-midx retains up-to-date MIDX without bi
 		test_path_is_file .git/objects/pack/multi-pack-index &&
 		test-tool chmtime =0 .git/objects/pack/multi-pack-index &&
 
-		ls -l .git/objects/pack/ >expect &&
+		ls -l .git/objects/pack/ | sed 1d >expect &&
 		git repack --geometric=2 --write-midx --no-write-bitmap-index &&
-		ls -l .git/objects/pack/ >actual &&
+		ls -l .git/objects/pack/ | sed 1d >actual &&
 		test_cmp expect actual
 	)
 '
@@ -316,9 +316,9 @@ test_expect_success '--geometric --write-midx retains up-to-date MIDX with bitma
 	test_path_is_file repo/.git/objects/pack/multi-pack-index &&
 	test-tool chmtime =0 repo/.git/objects/pack/multi-pack-index &&
 
-	ls -l repo/.git/objects/pack/ >expect &&
+	ls -l repo/.git/objects/pack/ | sed 1d >expect &&
 	git -C repo repack --geometric=2 --write-midx --write-bitmap-index &&
-	ls -l repo/.git/objects/pack/ >actual &&
+	ls -l repo/.git/objects/pack/ | sed 1d >actual &&
 	test_cmp expect actual
 '
 

base-commit: 94f057755b7941b321fd11fec1b2e3ca5313a4e0
-- 
2.53.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] t7703: ignore 'total' line when comparing ls -l output
  2026-05-04 10:14 [PATCH] t7703: ignore 'total' line when comparing ls -l output Joerg Thalheim
@ 2026-05-05  6:02 ` Patrick Steinhardt
  0 siblings, 0 replies; 2+ messages in thread
From: Patrick Steinhardt @ 2026-05-05  6:02 UTC (permalink / raw)
  To: Joerg Thalheim; +Cc: git, Junio C Hamano

On Mon, May 04, 2026 at 12:14:29PM +0200, Joerg Thalheim wrote:
> diff --git a/t/t7703-repack-geometric.sh b/t/t7703-repack-geometric.sh
> index 04d5d8fc33..9b5a428620 100755
> --- a/t/t7703-repack-geometric.sh
> +++ b/t/t7703-repack-geometric.sh
> @@ -299,9 +299,9 @@ test_expect_success '--geometric --write-midx retains up-to-date MIDX without bi
>  		test_path_is_file .git/objects/pack/multi-pack-index &&
>  		test-tool chmtime =0 .git/objects/pack/multi-pack-index &&
>  
> -		ls -l .git/objects/pack/ >expect &&
> +		ls -l .git/objects/pack/ | sed 1d >expect &&
>  		git repack --geometric=2 --write-midx --no-write-bitmap-index &&
> -		ls -l .git/objects/pack/ >actual &&
> +		ls -l .git/objects/pack/ | sed 1d >actual &&
>  		test_cmp expect actual
>  	)
>  '
> @@ -316,9 +316,9 @@ test_expect_success '--geometric --write-midx retains up-to-date MIDX with bitma
>  	test_path_is_file repo/.git/objects/pack/multi-pack-index &&
>  	test-tool chmtime =0 repo/.git/objects/pack/multi-pack-index &&
>  
> -	ls -l repo/.git/objects/pack/ >expect &&
> +	ls -l repo/.git/objects/pack/ | sed 1d >expect &&
>  	git -C repo repack --geometric=2 --write-midx --write-bitmap-index &&
> -	ls -l repo/.git/objects/pack/ >actual &&
> +	ls -l repo/.git/objects/pack/ | sed 1d >actual &&
>  	test_cmp expect actual
>  '

Hm. So all we're interested in is the mtime of these files as an
indicator whether they have been rewritten or not. I don't think there's
an easy, portable via POSIX tooling to retrieve that. But we don't need
it, because our test-tool already supports this functionality:

    $ test-tool chmtime --get <files>

So how about we do the below patch instead?

Thanks!

Patrick

diff --git a/t/t7703-repack-geometric.sh b/t/t7703-repack-geometric.sh
index 04d5d8fc33..ec7032bf5d 100755
--- a/t/t7703-repack-geometric.sh
+++ b/t/t7703-repack-geometric.sh
@@ -299,9 +299,9 @@ test_expect_success '--geometric --write-midx retains up-to-date MIDX without bi
 		test_path_is_file .git/objects/pack/multi-pack-index &&
 		test-tool chmtime =0 .git/objects/pack/multi-pack-index &&
 
-		ls -l .git/objects/pack/ >expect &&
+		test-tool chmtime --get .git/objects/pack/* >expect &&
 		git repack --geometric=2 --write-midx --no-write-bitmap-index &&
-		ls -l .git/objects/pack/ >actual &&
+		test-tool chmtime --get .git/objects/pack/* >actual &&
 		test_cmp expect actual
 	)
 '
@@ -316,9 +316,9 @@ test_expect_success '--geometric --write-midx retains up-to-date MIDX with bitma
 	test_path_is_file repo/.git/objects/pack/multi-pack-index &&
 	test-tool chmtime =0 repo/.git/objects/pack/multi-pack-index &&
 
-	ls -l repo/.git/objects/pack/ >expect &&
+	test-tool chmtime --get repo/.git/objects/pack/* >expect &&
 	git -C repo repack --geometric=2 --write-midx --write-bitmap-index &&
-	ls -l repo/.git/objects/pack/ >actual &&
+	test-tool chmtime --get repo/.git/objects/pack/* >actual &&
 	test_cmp expect actual
 '

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-05-05  6:02 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-04 10:14 [PATCH] t7703: ignore 'total' line when comparing ls -l output Joerg Thalheim
2026-05-05  6:02 ` Patrick Steinhardt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox