Re: [GSoC PATCH v3 4/5] t7700: test for promisor file content after repack
- From
Lorenzo Pegorari <lorenzo.pegorari2002@gmail.com>
- Date
- Apr 7, 2026, 23:11 UTC
- Message-ID
- <adWPLhGeo-4Mqfbh@lorenzo-VM>
- In-Reply-To
- <xmqqwlyi4p6t.fsf@gitster.g>
On Tue, Apr 07, 2026 at 11:10:02AM -0700, Junio C Hamano wrote:
Show 64 quoted lines
> LorenzoPegorari <lorenzo.pegorari2002@gmail.com> writes: > > > Add tests that checks if the content of ".promisor" files are correctly > > copied inside the ".promisor" files created by a repack. > > > > Signed-off-by: LorenzoPegorari <lorenzo.pegorari2002@gmail.com> > > --- > > t/t7700-repack.sh | 63 +++++++++++++++++++++++++++++++++++++++++++++++ > > 1 file changed, 63 insertions(+) > > > > diff --git a/t/t7700-repack.sh b/t/t7700-repack.sh > > index 63ef63fc50..89a2116641 100755 > > --- a/t/t7700-repack.sh > > +++ b/t/t7700-repack.sh > > @@ -904,4 +904,67 @@ test_expect_success 'pending objects are repacked appropriately' ' > > ) > > ' > > > > +test_expect_success 'check one .promisor file content after repack' ' > > + test_when_finished rm -rf prom_test && > > + git init prom_test && > > + path=prom_test/.git/objects/pack && > > + > > + ( > > + test_commit_bulk -C prom_test --start=1 1 && > > + > > + # Simulate .promisor file by creating it manually > > + prom=$(ls $path/*.pack | sed "s/\.pack/.promisor/") && > > + oid=$(git -C prom_test rev-parse HEAD) && > > + echo "$oid ref" >$prom && > > + > > + # Save the current .promisor content, repack, and check if correct > > + prom_before_repack=$(cat $prom) && > > + git -C prom_test repack -a -d && > > + prom=$(ls $path/*.pack | sed "s/\.pack/.promisor/") && > > + # $prom should contain "$prom_before_repack <date>" > > + test_grep "$prom_before_repack " $prom && > > + > > + # Save the current .promisor content, repack, and check if correct > > + cat $prom >prom_before_repack && > > + git -C prom_test repack -a -d && > > + prom=$(ls $path/*.pack | sed "s/\.pack/.promisor/") && > > + # $prom should be exactly the same as prom_before_repack > > + test_cmp prom_before_repack $prom > > + ) > > +' > > + > > +test_expect_success 'check multiple .promisor file content after repack' ' > > +... > > + > > + # Repack, and check if correct compared to previous saved .promisor content > > + git -C prom_test repack -a -d && > > + prom=$(ls $path/*.pack | sed "s/\.pack/.promisor/") && > > + # $prom should contain "$prom_before_repack1 <date>" & "$prom_before_repack2 <date>" > > + test_grep "$prom_before_repack1 " $prom && > > + test_grep "$prom_before_repack2 " $prom && > > This test seems to be flakey. > > https://github.com/git/git/actions/runs/24095497271/job/70292906676#step:10:5274 > > shows that $prom gets two file names, and because test_grep is > expecting a single source to grep inside, the first test_grep > fails.
Uff yeah, I see.
I also saw your other mail regarding the "SQUASH???" commit you made (inside the `seen` branch). I'm not so sure if it is useful to solve this issue tho.
It looks like, for some reason, `repack -a` fails to repack everything into a single pack, but I believe that `repack -a -f` should force it to repack everything no matter what (I think??).