From: Junio C Hamano Date: Wed, 10 Dec 2025 14:58:29 GMT Subject: Re: [PATCH 5/6] builtin/repo: add disk size info to keyvalue stucture output Message-ID: In-Reply-To: <20251209225820.2861276-6-jltobler@gmail.com> Justin Tobler writes: > -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_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 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 struct diff --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_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="