Subject: Re: [PATCH v3 00/25] Support reftable ref backend for Git

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Thu, 26 Aug 2021 18:02:49 +0200

On Mon, Aug 23 2021, Ævar Arnfjörð Bjarmason wrote:

> On Tue, Aug 17 2021, Han-Wen Nienhuys via GitGitGadget wrote:
>
>> This continues the work in https://github.com/git/git/pull/847, which the
>> gitgitgadget erroneously closed.
>>
>> Changes relative to last series (version 20 Jul 2021, tip: 4a5891f )
>>
>>  * fix HTTP serving
>>  * fix t1501 (use absolute paths.)
>>  * fix git-new-workdir
>>  * fixes for FreeBSD (thanks, [email-masked]!)
>>
>
> What's the overall status of this topic vis-a-vis whether it's being
> proposed to be integrated or is in more RFC form?
>
> Since we discussed the non-working GIT_TEST_REFTABLE=true in [1] & [2]
> there's been fixes to the REFFILES for the tests which has already
> landed as c9780bb2ca8 (Merge branch 'hn/prep-tests-for-reftable',
> 2021-07-13).
>
> But e.g. running t1410-reflog.sh reveals an assert failure() in this
> library's own code:
>
>     git: reftable/record.c:1075: reftable_record_copy_from: Assertion
>     `src->ops->type == rec->ops->type' failed.
>
> (A *lot* of things in the test suite still fail, I didn't look in any
> detail. Just highlighting that it's not just remaining failures due to
> hardcoding of .git/refs/*).
>
> I took your reply in [2] to mean that you were on board with the plan I
> proposed in [1], but aside from the limited REFFILES fixes the structure
> of what's here seems relatively unchanged.
>
> So is this series still considered RFC-esque, or what's the plan to move
> this forward at this point?
>
> 1. https://lore.kernel.org/git/[email-masked]
> 2. https://lore.kernel.org/git/[email-masked]

Just a note: I didn't notice the outstanding REFFILES fixes that were
about to hit "master", so this was written with a branch rebased without
those fixes.

But in either case there's a lot of failures. Running the full test
suite also reveals at least a couple of tests running into this:

    BUG: refs.c:1039: free called on a prepared reference transaction

t1400-update-ref.sh is one of them, t5510-fetch.sh is the other one. We
then have t5304-prune.sh, t3200-branch.sh and t2400-worktree-add.sh
running into the assertion I noted above, in addition to the
t1410-reflog.sh test I noted above.