pack-objects: flip the use of GIT_TEST_PACK_SPARSE

The environment variable GIT_TEST_PACK_SPARSE was previously used
to allow testing the --sparse option for "git pack-objects" in
the test suite. This allowed interesting cases of "git push" to
also test this algorithm.

Since pack.useSparse is now true by default, we do not need this
variable to _enable_ the --sparse option, but instead to _disable_
it. This flips how we work with the variable a bit.

When checking for the variable, default to a value of -1 for
"unset". If unset, then take the default from the repo settings,
which is currently 1. Then, the --[no-]sparse command-line option
will override either of these settings.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Derrick Stolee 2020-03-20 12:38:10 +00:00 коммит произвёл Junio C Hamano
Родитель de3a864114
Коммит 2d657ab95f
3 изменённых файлов: 6 добавлений и 5 удалений

Просмотреть файл

@ -3469,9 +3469,9 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
read_replace_refs = 0; read_replace_refs = 0;
sparse = git_env_bool("GIT_TEST_PACK_SPARSE", 0); sparse = git_env_bool("GIT_TEST_PACK_SPARSE", -1);
prepare_repo_settings(the_repository); prepare_repo_settings(the_repository);
if (!sparse && the_repository->settings.pack_use_sparse != -1) if (sparse < 0)
sparse = the_repository->settings.pack_use_sparse; sparse = the_repository->settings.pack_use_sparse;
reset_pack_idx_option(&pack_idx_opts); reset_pack_idx_option(&pack_idx_opts);

Просмотреть файл

@ -386,9 +386,9 @@ GIT_TEST_INDEX_VERSION=<n> exercises the index read/write code path
for the index version specified. Can be set to any valid version for the index version specified. Can be set to any valid version
(currently 2, 3, or 4). (currently 2, 3, or 4).
GIT_TEST_PACK_SPARSE=<boolean> if enabled will default the pack-objects GIT_TEST_PACK_SPARSE=<boolean> if disabled will default the pack-objects
builtin to use the sparse object walk. This can still be overridden by builtin to use the non-sparse object walk. This can still be overridden by
the --no-sparse command-line argument. the --sparse command-line argument.
GIT_TEST_PRELOAD_INDEX=<boolean> exercises the preload-index code path GIT_TEST_PRELOAD_INDEX=<boolean> exercises the preload-index code path
by overriding the minimum number of cache entries required per thread. by overriding the minimum number of cache entries required per thread.

Просмотреть файл

@ -107,6 +107,7 @@ test_expect_success 'non-sparse pack-objects' '
# --sparse is enabled by default by pack.useSparse # --sparse is enabled by default by pack.useSparse
test_expect_success 'sparse pack-objects' ' test_expect_success 'sparse pack-objects' '
GIT_TEST_PACK_SPARSE=-1 &&
git rev-parse \ git rev-parse \
topic1 \ topic1 \
topic1^{tree} \ topic1^{tree} \