]> git.ipfire.org Git - thirdparty/git.git/commitdiff
midx: respect 'GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP'
authorTaylor Blau <me@ttaylorr.com>
Tue, 31 Aug 2021 20:52:43 +0000 (16:52 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 1 Sep 2021 20:56:43 +0000 (13:56 -0700)
Introduce a new 'GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP' environment
variable to also write a multi-pack bitmap when
'GIT_TEST_MULTI_PACK_INDEX' is set.

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

index 5f9bc74adc05aff9a0dc9cf738dc82c733115eb9..82ab6682726f7abb6035be9d1391913bdec44ae6 100644 (file)
@@ -515,6 +515,10 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
                if (!(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;
@@ -725,8 +729,12 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
                update_server_info(0);
        remove_temporary_files();
 
-       if (git_env_bool(GIT_TEST_MULTI_PACK_INDEX, 0))
-               write_midx_file(get_object_directory(), NULL, 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, flags);
+       }
 
        string_list_clear(&names, 0);
        string_list_clear(&rollback, 0);
index 3ce81ffee941b2efb2d129d6b6df15e779894958..7ee9ba9325fb3aa644b11d10bced26f834c1f876 100755 (executable)
@@ -23,6 +23,7 @@ linux-gcc)
        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_ADD_I_USE_BUILTIN=1
        export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=master
        export GIT_TEST_WRITE_REV_INDEX=1
diff --git a/midx.h b/midx.h
index 350f4d0a7b4c205486ee0ce26542d886f3356cf4..aa3da557bb0ae974f3e686c3f0f018161d854651 100644 (file)
--- a/midx.h
+++ b/midx.h
@@ -8,6 +8,8 @@ struct pack_entry;
 struct repository;
 
 #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 9e7012230203805da49deeba5f9a66af2199c792..12014aa9887183a0184214f6c098cbc815643b9f 100644 (file)
--- a/t/README
+++ b/t/README
@@ -425,6 +425,10 @@ 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