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
committed by Junio C Hamano
parent de3a864114
commit 2d657ab95f
3 changed files with 6 additions and 5 deletions

View File

@ -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);

View File

@ -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.

View File

@ -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} \