multi-pack-index: define GIT_TEST_MULTI_PACK_INDEX
authorDerrick Stolee <dstolee@microsoft.com>
Fri, 12 Oct 2018 17:34:20 +0000 (10:34 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 22 Oct 2018 01:42:46 +0000 (10:42 +0900)
commit0465a50506023df0932fe0534fe6ac6712c0d854
tree1e91456d42766475db5e11a38cf3e9f07d2aac9d
parent1dcd9f2043a38f0c9684d47c71b9e383942660ac
multi-pack-index: define GIT_TEST_MULTI_PACK_INDEX

The multi-pack-index feature is tested in isolation by
t5319-multi-pack-index.sh, but there are many more interesting
scenarios in the test suite surrounding pack-file data shapes
and interactions. Since the multi-pack-index is an optional
data structure, it does not make sense to include it by default
in those tests.

Instead, add a new GIT_TEST_MULTI_PACK_INDEX environment variable
that enables core.multiPackIndex and writes a multi-pack-index
after each 'git repack' command. This adds extra test coverage
when needed.

There are a few spots in the test suite that need to react to this
change:

* t5319-multi-pack-index.sh: there is a test that checks that
  'git repack' deletes the multi-pack-index. Disable the environment
  variable to ensure this still happens.

* t5310-pack-bitmaps.sh: One test moves a pack-file from the object
  directory to an alternate. This breaks the multi-pack-index, so
  delete the multi-pack-index at this point, if it exists.

* t9300-fast-import.sh: One test verifies the number of files in
  the .git/objects/pack directory is exactly 8. Exclude the
  multi-pack-index from this count so it is still 8 in all cases.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/repack.c
midx.c
midx.h
t/README
t/t5310-pack-bitmaps.sh
t/t5319-multi-pack-index.sh
t/t9300-fast-import.sh