midx: respect 'GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP'
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>
Taylor Blau committed
Aug 31, 2021 at 16:52 UTC
ff1e653c8e252f9baf132478e126e1a2398bfee9
4 files changed
+17
-2
builtin/repack.c
+10
-2
@@ -515,6 +515,10 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
515
if (!(pack_everything & ALL_INTO_ONE) ||
516
!is_bare_repository())
517
write_bitmaps = 0;
518
+ } else if (write_bitmaps &&
519
+ git_env_bool(GIT_TEST_MULTI_PACK_INDEX, 0) &&
520
+ git_env_bool(GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP, 0)) {
521
+ write_bitmaps = 0;
522
}
523
if (pack_kept_objects < 0)
524
pack_kept_objects = write_bitmaps > 0;
@@ -725,8 +729,12 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
729
update_server_info(0);
730
remove_temporary_files();
731
728
- if (git_env_bool(GIT_TEST_MULTI_PACK_INDEX, 0))
729
- write_midx_file(get_object_directory(), NULL, 0);
732
+ if (git_env_bool(GIT_TEST_MULTI_PACK_INDEX, 0)) {
733
+ unsigned flags = 0;
734
+ if (git_env_bool(GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP, 0))
735
+ flags |= MIDX_WRITE_BITMAP | MIDX_WRITE_REV_INDEX;
736
+ write_midx_file(get_object_directory(), NULL, flags);
737
+ }
738
739
string_list_clear(&names, 0);
740
string_list_clear(&rollback, 0);
ci/run-build-and-tests.sh
+1
@@ -23,6 +23,7 @@ linux-gcc)
23
export GIT_TEST_COMMIT_GRAPH=1
24
export GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=1
25
export GIT_TEST_MULTI_PACK_INDEX=1
26
+ export GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=1
27
export GIT_TEST_ADD_I_USE_BUILTIN=1
28
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=master
29
export GIT_TEST_WRITE_REV_INDEX=1
midx.h
+2
@@ -8,6 +8,8 @@ struct pack_entry;
8
struct repository;
9
10
#define GIT_TEST_MULTI_PACK_INDEX "GIT_TEST_MULTI_PACK_INDEX"
11
+#define GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP \
12
+ "GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP"
13
14
struct multi_pack_index {
15
struct multi_pack_index *next;
t/README
+4
@@ -425,6 +425,10 @@ GIT_TEST_MULTI_PACK_INDEX=<boolean>, when true, forces the multi-pack-
425
index to be written after every 'git repack' command, and overrides the
426
'core.multiPackIndex' setting to true.
427
428
+GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=<boolean>, when true, sets the
429
+'--bitmap' option on all invocations of 'git multi-pack-index write',
430
+and ignores pack-objects' '--write-bitmap-index'.
431
+
432
GIT_TEST_SIDEBAND_ALL=<boolean>, when true, overrides the
433
'uploadpack.allowSidebandAll' setting to true, and when false, forces
434
fetch-pack to not request sideband-all (even if the server advertises