]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t: retire 'GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP'
authorTaylor Blau <me@ttaylorr.com>
Tue, 6 Aug 2024 15:38:01 +0000 (11:38 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 6 Aug 2024 19:01:38 +0000 (12:01 -0700)
Two years ago, commit ff1e653c8e2 (midx: respect
'GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP', 2021-08-31) introduced a new
environment variable which caused the test suite to write MIDX bitmaps
after any 'git repack' invocation.

At the time, this was done to help flush out any bugs with MIDX bitmaps
that weren't explicitly covered in the t5326-multi-pack-bitmap.sh
script.

Two years later, that flag has served us well and is no longer providing
meaningful coverage, as the script in t5326 has matured substantially
and covers many more interesting cases than it did back when ff1e653c8e2
was originally written.

Remove the 'GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP' environment variable
as it is no longer serving a useful purpose. More importantly, removing
this variable clears the way for us to introduce a new one to help
similarly flush out bugs related to incremental MIDX chains.

Because these incremental MIDX chains are (for now) incompatible with
MIDX bitmaps, we cannot have both.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/repack.c
ci/run-build-and-tests.sh
midx.h
t/README
t/t0410-partial-clone.sh
t/t5310-pack-bitmaps.sh
t/t5319-multi-pack-index.sh
t/t5326-multi-pack-bitmaps.sh
t/t5327-multi-pack-bitmaps-rev.sh
t/t7700-repack.sh

index f0317fa94ad46c9615d8cbe1ced7c464c33be5aa..8499bf0e12b9d3bdb47fb6030fd4e9f6f7004761 100644 (file)
@@ -1217,10 +1217,6 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
                if (!write_midx &&
                    (!(pack_everything & ALL_INTO_ONE) || !is_bare_repository()))
                        write_bitmaps = 0;
-       } else if (write_bitmaps &&
-                  git_env_bool(GIT_TEST_MULTI_PACK_INDEX, 0) &&
-                  git_env_bool(GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP, 0)) {
-               write_bitmaps = 0;
        }
        if (pack_kept_objects < 0)
                pack_kept_objects = write_bitmaps > 0 && !write_midx;
@@ -1518,12 +1514,8 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
        if (run_update_server_info)
                update_server_info(0);
 
-       if (git_env_bool(GIT_TEST_MULTI_PACK_INDEX, 0)) {
-               unsigned flags = 0;
-               if (git_env_bool(GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP, 0))
-                       flags |= MIDX_WRITE_BITMAP | MIDX_WRITE_REV_INDEX;
-               write_midx_file(get_object_directory(), NULL, NULL, flags);
-       }
+       if (git_env_bool(GIT_TEST_MULTI_PACK_INDEX, 0))
+               write_midx_file(get_object_directory(), NULL, NULL, 0);
 
 cleanup:
        string_list_clear(&names, 1);
index 98dda42045d3f3abc077af59c0dd7d0e02439157..e6fd68630c77c6981bcfdf53583ed2371e5c4ff8 100755 (executable)
@@ -25,7 +25,6 @@ linux-TEST-vars)
        export GIT_TEST_COMMIT_GRAPH=1
        export GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=1
        export GIT_TEST_MULTI_PACK_INDEX=1
-       export GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=1
        export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=master
        export GIT_TEST_NO_WRITE_REV_INDEX=1
        export GIT_TEST_CHECKOUT_WORKERS=2
diff --git a/midx.h b/midx.h
index 9d30935589d99f615f7e8b61793e56c50623fc15..3714cad2cc28dbf6cb78af41eb933121e899a9e7 100644 (file)
--- a/midx.h
+++ b/midx.h
@@ -29,8 +29,6 @@ struct bitmapped_pack;
 #define MIDX_LARGE_OFFSET_NEEDED 0x80000000
 
 #define GIT_TEST_MULTI_PACK_INDEX "GIT_TEST_MULTI_PACK_INDEX"
-#define GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP \
-       "GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP"
 
 struct multi_pack_index {
        struct multi_pack_index *next;
index d9e0e075061f8d1d629abd02611bd1102d0269ba..e8a11926e4c593b3860e26f6b709d31b58990072 100644 (file)
--- a/t/README
+++ b/t/README
@@ -469,10 +469,6 @@ GIT_TEST_MULTI_PACK_INDEX=<boolean>, when true, forces the multi-pack-
 index to be written after every 'git repack' command, and overrides the
 'core.multiPackIndex' setting to true.
 
-GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=<boolean>, when true, sets the
-'--bitmap' option on all invocations of 'git multi-pack-index write',
-and ignores pack-objects' '--write-bitmap-index'.
-
 GIT_TEST_SIDEBAND_ALL=<boolean>, when true, overrides the
 'uploadpack.allowSidebandAll' setting to true, and when false, forces
 fetch-pack to not request sideband-all (even if the server advertises
index 2c30c86e7bff138154f8c0771fba078eaa9745a3..34bdb3ab1f23b70115a47bb7b5bb01fb57beae8f 100755 (executable)
@@ -5,8 +5,6 @@ test_description='partial clone'
 . ./test-lib.sh
 . "$TEST_DIRECTORY"/lib-terminal.sh
 
-# missing promisor objects cause repacks which write bitmaps to fail
-GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=0
 # When enabled, some commands will write commit-graphs. This causes fsck
 # to fail when delete_object() is called because fsck will attempt to
 # verify the out-of-sync commit graph.
index d7fd71360e17bd2368562dd7c35644442475bb60..a6de7c5764307817cce2d4ecf9140d84aa70d448 100755 (executable)
@@ -5,10 +5,6 @@ test_description='exercise basic bitmap functionality'
 . ./test-lib.sh
 . "$TEST_DIRECTORY"/lib-bitmap.sh
 
-# t5310 deals only with single-pack bitmaps, so don't write MIDX bitmaps in
-# their place.
-GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=0
-
 # Likewise, allow individual tests to control whether or not they use
 # the boundary-based traversal.
 sane_unset GIT_TEST_PACK_USE_BITMAP_BOUNDARY_TRAVERSAL
index 10d2a6bf9231d1931e7d06065c2e1b15370edfd7..6e9ee233980b549305874400af3f2ed1d69f6489 100755 (executable)
@@ -600,8 +600,7 @@ test_expect_success 'repack preserves multi-pack-index when creating packs' '
 compare_results_with_midx "after repack"
 
 test_expect_success 'multi-pack-index and pack-bitmap' '
-       GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=0 \
-               git -c repack.writeBitmaps=true repack -ad &&
+       git -c repack.writeBitmaps=true repack -ad &&
        git multi-pack-index write &&
        git rev-list --test-bitmap HEAD
 '
index 916da389b6d2df8af9500ad28eaa625d4bc708d2..1cb3e3ff08ae88623b7e86b3348e8a2306ca26b8 100755 (executable)
@@ -4,10 +4,9 @@ test_description='exercise basic multi-pack bitmap functionality'
 . ./test-lib.sh
 . "${TEST_DIRECTORY}/lib-bitmap.sh"
 
-# We'll be writing our own midx and bitmaps, so avoid getting confused by the
+# We'll be writing our own MIDX, so avoid getting confused by the
 # automatic ones.
 GIT_TEST_MULTI_PACK_INDEX=0
-GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=0
 
 # This test exercise multi-pack bitmap functionality where the object order is
 # stored and read from a special chunk within the MIDX, so use the default
index e65e311cd73aec492ac0850cd6e79d126415ac36..23db949c208ab903db900e198d3c28c355ca5daf 100755 (executable)
@@ -5,10 +5,9 @@ test_description='exercise basic multi-pack bitmap functionality (.rev files)'
 . ./test-lib.sh
 . "${TEST_DIRECTORY}/lib-bitmap.sh"
 
-# We'll be writing our own midx and bitmaps, so avoid getting confused by the
-# automatic ones.
+# We'll be writing our own MIDX, so avoid getting confused by the automatic
+# ones.
 GIT_TEST_MULTI_PACK_INDEX=0
-GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=0
 
 # Unlike t5326, this test exercise multi-pack bitmap functionality where the
 # object order is stored in a separate .rev file.
index 127efe99f8cd21dbb6105547ea472ab9f682a7f6..8f34f05087c36e5460141d172583c035008a6b2a 100755 (executable)
@@ -70,14 +70,13 @@ test_expect_success 'objects in packs marked .keep are not repacked' '
 
 test_expect_success 'writing bitmaps via command-line can duplicate .keep objects' '
        # build on $oid, $packid, and .keep state from previous
-       GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=0 git repack -Adbl &&
+       git repack -Adbl &&
        test_has_duplicate_object true
 '
 
 test_expect_success 'writing bitmaps via config can duplicate .keep objects' '
        # build on $oid, $packid, and .keep state from previous
-       GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=0 \
-               git -c repack.writebitmaps=true repack -Adl &&
+       git -c repack.writebitmaps=true repack -Adl &&
        test_has_duplicate_object true
 '
 
@@ -284,8 +283,7 @@ test_expect_success 'repacking fails when missing .pack actually means missing o
 test_expect_success 'bitmaps are created by default in bare repos' '
        git clone --bare .git bare.git &&
        rm -f bare.git/objects/pack/*.bitmap &&
-       GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=0 \
-               git -C bare.git repack -ad &&
+       git -C bare.git repack -ad &&
        bitmap=$(ls bare.git/objects/pack/*.bitmap) &&
        test_path_is_file "$bitmap"
 '
@@ -296,8 +294,7 @@ test_expect_success 'incremental repack does not complain' '
 '
 
 test_expect_success 'bitmaps can be disabled on bare repos' '
-       GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=0 \
-               git -c repack.writeBitmaps=false -C bare.git repack -ad &&
+       git -c repack.writeBitmaps=false -C bare.git repack -ad &&
        bitmap=$(ls bare.git/objects/pack/*.bitmap || :) &&
        test -z "$bitmap"
 '
@@ -308,8 +305,7 @@ test_expect_success 'no bitmaps created if .keep files present' '
        keep=${pack%.pack}.keep &&
        test_when_finished "rm -f \"\$keep\"" &&
        >"$keep" &&
-       GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=0 \
-               git -C bare.git repack -ad 2>stderr &&
+       git -C bare.git repack -ad 2>stderr &&
        test_must_be_empty stderr &&
        find bare.git/objects/pack/ -type f -name "*.bitmap" >actual &&
        test_must_be_empty actual
@@ -320,8 +316,7 @@ test_expect_success 'auto-bitmaps do not complain if unavailable' '
        blob=$(test-tool genrandom big $((1024*1024)) |
               git -C bare.git hash-object -w --stdin) &&
        git -C bare.git update-ref refs/tags/big $blob &&
-       GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=0 \
-               git -C bare.git repack -ad 2>stderr &&
+       git -C bare.git repack -ad 2>stderr &&
        test_must_be_empty stderr &&
        find bare.git/objects/pack -type f -name "*.bitmap" >actual &&
        test_must_be_empty actual
@@ -342,9 +337,7 @@ test_expect_success 'repacking with a filter works' '
 '
 
 test_expect_success '--filter fails with --write-bitmap-index' '
-       test_must_fail \
-               env GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=0 \
-               git -C bare.git repack -a -d --write-bitmap-index --filter=blob:none
+       test_must_fail git -C bare.git repack -a -d --write-bitmap-index --filter=blob:none
 '
 
 test_expect_success 'repacking with two filters works' '