]> git.ipfire.org Git - thirdparty/git.git/commitdiff
builtin/pack-objects.c: respect 'pack.writeReverseIndex'
authorTaylor Blau <me@ttaylorr.com>
Mon, 25 Jan 2021 23:37:30 +0000 (18:37 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 26 Jan 2021 02:32:43 +0000 (18:32 -0800)
Now that we have an implementation that can write the new reverse index
format, enable writing a .rev file in 'git pack-objects' by consulting
the pack.writeReverseIndex configuration variable.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/pack-objects.c
t/t5325-reverse-index.sh

index 5b0c4489e27d48f2af3729c991e258c3150c2be0..d784569200b1cc96d4a9f7180d85f5f829843f82 100644 (file)
@@ -2955,6 +2955,13 @@ static int git_pack_config(const char *k, const char *v, void *cb)
                            pack_idx_opts.version);
                return 0;
        }
+       if (!strcmp(k, "pack.writereverseindex")) {
+               if (git_config_bool(k, v))
+                       pack_idx_opts.flags |= WRITE_REV;
+               else
+                       pack_idx_opts.flags &= ~WRITE_REV;
+               return 0;
+       }
        if (!strcmp(k, "uploadpack.blobpackfileuri")) {
                struct configured_exclusion *ex = xmalloc(sizeof(*ex));
                const char *oid_end, *pack_end;
index 2dae213126a15a680c96b3cf7abb46c6b68f32ac..87040263b71352042e9d32e29bb92e88703b5d25 100755 (executable)
@@ -68,4 +68,17 @@ test_expect_success 'index-pack infers reverse index name with -o' '
        test_path_is_file other.rev
 '
 
+test_expect_success 'pack-objects respects pack.writeReverseIndex' '
+       test_when_finished "rm -fr pack-1-*" &&
+
+       git -c pack.writeReverseIndex= pack-objects --all pack-1 &&
+       test_path_is_missing pack-1-*.rev &&
+
+       git -c pack.writeReverseIndex=false pack-objects --all pack-1 &&
+       test_path_is_missing pack-1-*.rev &&
+
+       git -c pack.writeReverseIndex=true pack-objects --all pack-1 &&
+       test_path_is_file pack-1-*.rev
+'
+
 test_done