t: invert `GIT_TEST_WRITE_REV_INDEX`

Back in e8c58f894b (t: support GIT_TEST_WRITE_REV_INDEX, 2021-01-25), we added a test knob to conditionally enable writing a ".rev" file when indexing a pack. At the time, this was used to ensure that the test suite worked even when ".rev" files were written, which served as a stress-test for the on-disk reverse index implementation. Now that reading from on-disk ".rev" files is enabled by default, the test knob `GIT_TEST_WRITE_REV_INDEX` no longer has any meaning. We could get rid of the option entirely, but there would be no convenient way to test Git when ".rev" files *aren't* in place. Instead of getting rid of the option, invert its meaning to instead disable writing ".rev" files, thereby running the test suite in a mode where the reverse index is generated from scratch. This ensures that, when GIT_TEST_NO_WRITE_REV_INDEX is set to some spelling of "true", we are still running and exercising Git's behavior when forced to generate reverse indexes from scratch. Do so by setting it in the linux-TEST-vars CI run to ensure that we are maintaining good coverage of this now-legacy code. Signed-off-by: Taylor Blau <me@ttaylorr.com> Acked-by: Derrick Stolee <derrickstolee@github.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Taylor Blau committed Apr 12, 2023 at 18:20 UTC 9f7f10a282d8adeb9da0990aa0eb2adf93a47ca7
6 files changed +8 -8
builtin/index-pack.c
+2 -2
@@ -1758,8 +1758,8 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix)
1758 if (prefix && chdir(prefix))
1759 die(_("Cannot come back to cwd"));
1760
1761 - if (git_env_bool(GIT_TEST_WRITE_REV_INDEX, 0))
1762 - rev_index = 1;
1761 + if (git_env_bool(GIT_TEST_NO_WRITE_REV_INDEX, 0))
1762 + rev_index = 0;
1763 else
1764 rev_index = !!(opts.flags & (WRITE_REV_VERIFY | WRITE_REV));
1765
builtin/pack-objects.c
+2 -2
@@ -4295,8 +4295,8 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
4295 reset_pack_idx_option(&pack_idx_opts);
4296 pack_idx_opts.flags |= WRITE_REV;
4297 git_config(git_pack_config, NULL);
4298 - if (git_env_bool(GIT_TEST_WRITE_REV_INDEX, 0))
4299 - pack_idx_opts.flags |= WRITE_REV;
4298 + if (git_env_bool(GIT_TEST_NO_WRITE_REV_INDEX, 0))
4299 + pack_idx_opts.flags &= ~WRITE_REV;
4300
4301 progress = isatty(2);
4302 argc = parse_options(argc, argv, prefix, pack_objects_options,
ci/run-build-and-tests.sh
+1 -1
@@ -27,7 +27,7 @@ linux-TEST-vars)
27 export GIT_TEST_MULTI_PACK_INDEX=1
28 export GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=1
29 export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=master
30 - export GIT_TEST_WRITE_REV_INDEX=1
30 + export GIT_TEST_NO_WRITE_REV_INDEX=1
31 export GIT_TEST_CHECKOUT_WORKERS=2
32 ;;
33 linux-clang)
pack-revindex.h
+1 -1
@@ -34,7 +34,7 @@
34 #define RIDX_SIGNATURE 0x52494458 /* "RIDX" */
35 #define RIDX_VERSION 1
36
37 -#define GIT_TEST_WRITE_REV_INDEX "GIT_TEST_WRITE_REV_INDEX"
37 +#define GIT_TEST_NO_WRITE_REV_INDEX "GIT_TEST_NO_WRITE_REV_INDEX"
38 #define GIT_TEST_REV_INDEX_DIE_IN_MEMORY "GIT_TEST_REV_INDEX_DIE_IN_MEMORY"
39 #define GIT_TEST_REV_INDEX_DIE_ON_DISK "GIT_TEST_REV_INDEX_DIE_ON_DISK"
40
t/README
+1 -1
@@ -475,7 +475,7 @@ GIT_TEST_DEFAULT_HASH=<hash-algo> specifies which hash algorithm to
475 use in the test scripts. Recognized values for <hash-algo> are "sha1"
476 and "sha256".
477
478 -GIT_TEST_WRITE_REV_INDEX=<boolean>, when true enables the
478 +GIT_TEST_NO_WRITE_REV_INDEX=<boolean>, when true disables the
479 'pack.writeReverseIndex' setting.
480
481 GIT_TEST_SPARSE_INDEX=<boolean>, when true enables index writes to use the
t/t5325-reverse-index.sh
+1 -1
@@ -7,7 +7,7 @@ TEST_PASSES_SANITIZE_LEAK=true
7
8 # The below tests want control over the 'pack.writeReverseIndex' setting
9 # themselves to assert various combinations of it with other options.
10 -sane_unset GIT_TEST_WRITE_REV_INDEX
10 +sane_unset GIT_TEST_NO_WRITE_REV_INDEX
11
12 packdir=.git/objects/pack
13