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>
maint
Taylor Blau 2021-08-31 16:52:43 -04:00 committed by Junio C Hamano
parent 4b58b6f7b7
commit ff1e653c8e
4 changed files with 17 additions and 2 deletions

View File

@ -515,6 +515,10 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
if (!(pack_everything & ALL_INTO_ONE) || if (!(pack_everything & ALL_INTO_ONE) ||
!is_bare_repository()) !is_bare_repository())
write_bitmaps = 0; 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) if (pack_kept_objects < 0)
pack_kept_objects = write_bitmaps > 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); update_server_info(0);
remove_temporary_files(); remove_temporary_files();


if (git_env_bool(GIT_TEST_MULTI_PACK_INDEX, 0)) if (git_env_bool(GIT_TEST_MULTI_PACK_INDEX, 0)) {
write_midx_file(get_object_directory(), NULL, 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(&names, 0);
string_list_clear(&rollback, 0); string_list_clear(&rollback, 0);

View File

@ -23,6 +23,7 @@ linux-gcc)
export GIT_TEST_COMMIT_GRAPH=1 export GIT_TEST_COMMIT_GRAPH=1
export GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=1 export GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=1
export GIT_TEST_MULTI_PACK_INDEX=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_ADD_I_USE_BUILTIN=1
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=master export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=master
export GIT_TEST_WRITE_REV_INDEX=1 export GIT_TEST_WRITE_REV_INDEX=1

2
midx.h
View File

@ -8,6 +8,8 @@ struct pack_entry;
struct repository; struct repository;


#define GIT_TEST_MULTI_PACK_INDEX "GIT_TEST_MULTI_PACK_INDEX" #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 {
struct multi_pack_index *next; struct multi_pack_index *next;

View File

@ -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 index to be written after every 'git repack' command, and overrides the
'core.multiPackIndex' setting to true. '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 GIT_TEST_SIDEBAND_ALL=<boolean>, when true, overrides the
'uploadpack.allowSidebandAll' setting to true, and when false, forces 'uploadpack.allowSidebandAll' setting to true, and when false, forces
fetch-pack to not request sideband-all (even if the server advertises fetch-pack to not request sideband-all (even if the server advertises