Re: [PATCH 5/6] builtin/repo: add disk size info to keyvalue stucture output
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Dec 10, 2025, 14:58 UTC
- Message-ID
- <xmqqikeegz8q.fsf@gitster.g>
- In-Reply-To
- <20251209225820.2861276-6-jltobler@gmail.com>
Justin Tobler <jltobler@gmail.com> writes:
Show 26 quoted lines
> -test_expect_success SHA1 'keyvalue and nul format' ' > +test_expect_success SHA1 'keyvalue format' ' > test_when_finished "rm -rf repo" && > git init repo && > ( > @@ -106,16 +137,12 @@ test_expect_success SHA1 'keyvalue and nul format' ' > objects.tags.inflated=132 > EOF > > - git repo structure --format=keyvalue >out 2>err && > + git repo structure --format=keyvalue >out.raw 2>err && > > - test_cmp expect out && > - test_line_count = 0 err && > + # Strip object disk usage from output due to platform variance. > + grep -v "objects\..*\.disk=" out.raw >out && > > - # Replace key and value delimiters for nul format. > - tr "\n=" "\0\n" <expect >expect_nul && > - git repo structure --format=nul >out 2>err && > - > - test_cmp expect_nul out && > + test_cmp expect out && > test_line_count = 0 err > ) > '
This part has both textual and semantic conflicts with Lucas's "-z is a synonym for --format=nul" topic. I think I resolved it correctly while improving the "munge expected output into expected NUL-terminated output" approach to "munge -z output into textual output and compare with textual expected output". Please sanity check the result after I push it out, merged at 32f8d84b (Merge branch 'jt/repo-struct-more-objinfo' into seen, 2025-12-10)
Thanks.
commit 32f8d84b5cfc5a5704e30fe4abc9d8755893179c Merge: 09bd4419e7 b8cacabfa5 Author: Junio C Hamano <gitster@pobox.com> Date: Wed Dec 10 20:41:31 2025 +0900
Merge branch 'jt/repo-struct-more-objinfo' into seen
* jt/repo-struct-more-objinfo:
builtin/repo: add object disk size info to structure table
builtin/repo: add disk size info to keyvalue stucture output
builtin/repo: add inflated object info to structure table
builtin/repo: add inflated object info to keyvalue structure output
builtin/repo: humanise count values in structure output
builtin/repo: group per-type object values into structdiff --cc t/t1901-repo-structure.sh index df7d4ea524,51820cc3f6..31c77c4666
--- a/t/t1901-repo-structure.sh +++ b/t/t1901-repo-structure.sh @@@ -90,25 -148,18 +148,29 @@@ test_expect_success SHA1 'keyvalue form objects.trees.count=42 objects.blobs.count=42 objects.tags.count=1 + objects.commits.inflated=9225 + objects.trees.inflated=28554 + objects.blobs.inflated=453 + objects.tags.inflated=132 EOF - git repo structure --format=keyvalue >out 2>err && + git repo structure --format=keyvalue >out.raw 2>err && - test_cmp expect out && - test_line_count = 0 err && + # Strip object disk usage from output due to platform variance. + grep -v "objects\..*\.disk=" out.raw >out && - # Replace key and value delimiters for nul format. - tr "\n=" "\0\n" <expect >expect_nul && - git repo structure --format=nul >out 2>err && - - test_cmp expect_nul out && ++ test_cmp expect out && + test_line_count = 0 err && + + # "-z", as a synonym to "--format=nul", participates in the + # usual "last one wins" rule. - git repo structure --format=table -z >out 2>err && ++ git repo structure --format=table -z >out.raw 2>err && + - test_cmp expect_nul out && ++ # Replace key and value delimiters for nul format. ++ tr "\0\n" "\n=" <out.raw | ++ grep -v "objects\..*\.disk=" >out && ++ + test_cmp expect out && test_line_count = 0 err ) '