Subject: [PATCH v2 0/7] t: drop more REFFILES prereqs

From: Patrick Steinhardt <[email-masked]>
Date: Thu, 15 Feb 2024 09:25:26 +0100

Hi,

this is the second version of my patch series that drops the REFFILES
prereq from more tests, thereby increasing test coverage of the reftable
backend.

There's only a single change compared to v1, addressing Junio's
feedback. Please refer to the below range-diff.

Thanks!

Patrick

Patrick Steinhardt (7):
  t: move tests exercising the "files" backend
  t0410: convert tests to use DEFAULT_REPO_FORMAT prereq
  t1400: exercise reflog with gaps with reftable backend
  t1404: make D/F conflict tests compatible with reftable backend
  t1405: remove unneeded cleanup step
  t2011: exercise D/F conflicts with HEAD with the reftable backend
  t7003: ensure filter-branch prunes reflogs with the reftable backend

 t/t0410-partial-clone.sh         |  4 +-
 t/t0600-reffiles-backend.sh      | 91 ++++++++++++++++++++++++++++++++
 t/t1301-shared-repo.sh           | 16 ------
 t/t1400-update-ref.sh            | 50 +++---------------
 t/t1404-update-ref-errors.sh     | 37 ++++++-------
 t/t1405-main-ref-store.sh        |  6 ---
 t/t2011-checkout-invalid-head.sh | 17 +++---
 t/t3200-branch.sh                | 29 ----------
 t/t3400-rebase.sh                | 10 ----
 t/t7003-filter-branch.sh         |  5 +-
 10 files changed, 125 insertions(+), 140 deletions(-)

Range-diff against v1:
1:  2eca90234f = 1:  6891cdfdb3 t: move tests exercising the "files" backend
2:  feef6a3e6c ! 2:  2dd87f3126 t0410: enable tests with extensions with non-default repo format
    @@ Metadata
     Author: Patrick Steinhardt <[email-masked]>
     
      ## Commit message ##
    -    t0410: enable tests with extensions with non-default repo format
    +    t0410: convert tests to use DEFAULT_REPO_FORMAT prereq
     
         In t0410 we have two tests which exercise how partial clones behave in
         the context of a repository with extensions. These tests are marked to
    -    require a default repository using SHA1 and the "files" backend because
    -    we explicitly set the repository format version to 0.
    +    require a repository using SHA1 and the "files" backend because we
    +    explicitly set the repository format version to 0, and setting up either
    +    the "objectFormat" or "refStorage" extensions requires a repository
    +    format version of 1.
     
    -    Changing the repository format version to 0 is not needed though. The
    -    "noop" extension is ignored as expected regardless of what the version
    -    is set to, same as the "nonsense" extension leads to failure regardless
    -    of the version.
    -
    -    Stop setting the version so that these tests can execute with SHA256 and
    -    "reftable" repositories.
    +    We have recently introduced a new DEFAULT_REPO_FORMAT prerequisite.
    +    Despite capturing the intent more directly, it also has the added
    +    benefit that it can easily be extended in the future in case we add new
    +    repository extensions. Adapt the tests to use it.
     
         Signed-off-by: Patrick Steinhardt <[email-masked]>
     
    @@ t/t0410-partial-clone.sh: test_expect_success 'convert shallow clone to partial
      '
      
     -test_expect_success SHA1,REFFILES 'convert to partial clone with noop extension' '
    -+test_expect_success 'convert to partial clone with noop extension' '
    ++test_expect_success DEFAULT_REPO_FORMAT 'convert to partial clone with noop extension' '
      	rm -fr server client &&
      	test_create_repo server &&
      	test_commit -C server my_commit 1 &&
    - 	test_commit -C server my_commit2 1 &&
    - 	git clone --depth=1 "file://$(pwd)/server" client &&
    --	test_cmp_config -C client 0 core.repositoryformatversion &&
    - 	git -C client config extensions.noop true &&
    +@@ t/t0410-partial-clone.sh: test_expect_success SHA1,REFFILES 'convert to partial clone with noop extension'
      	git -C client fetch --unshallow --filter="blob:none"
      '
      
     -test_expect_success SHA1,REFFILES 'converting to partial clone fails with unrecognized extension' '
    -+test_expect_success 'converting to partial clone fails with unrecognized extension' '
    ++test_expect_success DEFAULT_REPO_FORMAT 'converting to partial clone fails with unrecognized extension' '
      	rm -fr server client &&
      	test_create_repo server &&
      	test_commit -C server my_commit 1 &&
    - 	test_commit -C server my_commit2 1 &&
    - 	git clone --depth=1 "file://$(pwd)/server" client &&
    --	test_cmp_config -C client 0 core.repositoryformatversion &&
    - 	git -C client config extensions.nonsense true &&
    - 	test_must_fail git -C client fetch --unshallow --filter="blob:none"
    - '
3:  9d8eed354e = 3:  ed57913eb9 t1400: exercise reflog with gaps with reftable backend
4:  70c6f98012 = 4:  212949689f t1404: make D/F conflict tests compatible with reftable backend
5:  25cf00c36f = 5:  67d6aede63 t1405: remove unneeded cleanup step
6:  64d2548bbc = 6:  24051cc246 t2011: exercise D/F conflicts with HEAD with the reftable backend
7:  7adf510f73 = 7:  8fb6de37ce t7003: ensure filter-branch prunes reflogs with the reftable backend

base-commit: 4fc51f00ef18d2c0174ab2fd39d0ee473fd144bd
-- 
2.44.0-rc0