Message ID | 624ad202305138c312e9db7d9cc590baf4e576ab.1705521155.git.gitgitgadget@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 4e8df1a3c08d61e17dc817d46dc997e72cf1ef50 |
Headers | show |
Series | Group reffiles tests | expand |
"John Cai via GitGitGadget" <gitgitgadget@gmail.com> writes: > From: John Cai <johncai86@gmail.com> > > These tests are compatible with the reftable backend and thus do not > need the REFFILES prerequisite. May want to give a bit more backstory here? After all, 53af25e4 (t1405: mark test that checks existence as REFFILES, 2022-01-31) and 53af25e4 (t1405: mark test that checks existence as REFFILES, 2022-01-31) marked these tests to require REFFILES and they explain the reason for doing so was exactly because the reftable backend did not have the notion of "the reflog for this ref exists" that is independent from "the reflog for this ref exists and has one or more reflog records". If your work on the reftable backend during the past few years added support for "already exists, but there is no entry yet" state for reflogs, that would be great, but it would make sense to explain why they suddenly have become "compatible with the reftable backend". Thanks. > > Signed-off-by: John Cai <johncai86@gmail.com> > --- > t/t1405-main-ref-store.sh | 2 +- > t/t2017-checkout-orphan.sh | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/t/t1405-main-ref-store.sh b/t/t1405-main-ref-store.sh > index e4627cf1b61..62c1eadb190 100755 > --- a/t/t1405-main-ref-store.sh > +++ b/t/t1405-main-ref-store.sh > @@ -112,7 +112,7 @@ test_expect_success 'delete_reflog(HEAD)' ' > test_must_fail git reflog exists HEAD > ' > > -test_expect_success REFFILES 'create-reflog(HEAD)' ' > +test_expect_success 'create-reflog(HEAD)' ' > $RUN create-reflog HEAD && > git reflog exists HEAD > ' > diff --git a/t/t2017-checkout-orphan.sh b/t/t2017-checkout-orphan.sh > index 947d1587ac8..a5c7358eeab 100755 > --- a/t/t2017-checkout-orphan.sh > +++ b/t/t2017-checkout-orphan.sh > @@ -86,7 +86,7 @@ test_expect_success '--orphan makes reflog by default' ' > git rev-parse --verify delta@{0} > ' > > -test_expect_success REFFILES '--orphan does not make reflog when core.logAllRefUpdates = false' ' > +test_expect_success '--orphan does not make reflog when core.logAllRefUpdates = false' ' > git checkout main && > git config core.logAllRefUpdates false && > git checkout --orphan epsilon &&
On Wed, Jan 17, 2024 at 04:46:20PM -0800, Junio C Hamano wrote: > "John Cai via GitGitGadget" <gitgitgadget@gmail.com> writes: > > > From: John Cai <johncai86@gmail.com> > > > > These tests are compatible with the reftable backend and thus do not > > need the REFFILES prerequisite. > > May want to give a bit more backstory here? After all, 53af25e4 > (t1405: mark test that checks existence as REFFILES, 2022-01-31) and > 53af25e4 (t1405: mark test that checks existence as REFFILES, > 2022-01-31) marked these tests to require REFFILES and they explain > the reason for doing so was exactly because the reftable backend did > not have the notion of "the reflog for this ref exists" that is > independent from "the reflog for this ref exists and has one or more > reflog records". If your work on the reftable backend during the > past few years added support for "already exists, but there is no > entry yet" state for reflogs, that would be great, but it would make > sense to explain why they suddenly have become "compatible with the > reftable backend". I don't know a lot about the history any why we initially didn't think it would be compatible, mostly because there is no history of how the reftable backend itself evolved over time. I can only say that when I took over the effort that this indeed worked as expected by writing "existence" markers into the reflog, where this existence marker is a simple entry where both old and new object ID are set to the null OID. Patrick
diff --git a/t/t1405-main-ref-store.sh b/t/t1405-main-ref-store.sh index e4627cf1b61..62c1eadb190 100755 --- a/t/t1405-main-ref-store.sh +++ b/t/t1405-main-ref-store.sh @@ -112,7 +112,7 @@ test_expect_success 'delete_reflog(HEAD)' ' test_must_fail git reflog exists HEAD ' -test_expect_success REFFILES 'create-reflog(HEAD)' ' +test_expect_success 'create-reflog(HEAD)' ' $RUN create-reflog HEAD && git reflog exists HEAD ' diff --git a/t/t2017-checkout-orphan.sh b/t/t2017-checkout-orphan.sh index 947d1587ac8..a5c7358eeab 100755 --- a/t/t2017-checkout-orphan.sh +++ b/t/t2017-checkout-orphan.sh @@ -86,7 +86,7 @@ test_expect_success '--orphan makes reflog by default' ' git rev-parse --verify delta@{0} ' -test_expect_success REFFILES '--orphan does not make reflog when core.logAllRefUpdates = false' ' +test_expect_success '--orphan does not make reflog when core.logAllRefUpdates = false' ' git checkout main && git config core.logAllRefUpdates false && git checkout --orphan epsilon &&