packfile: close multi-pack-index in close_all_packs
authorDerrick Stolee <stolee@gmail.com>
Thu, 25 Oct 2018 12:54:05 +0000 (12:54 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 26 Oct 2018 02:49:06 +0000 (11:49 +0900)
commitdc7d66433536b5acca653c3c5ecf9c2d91462eba
tree461f11e9e79752a20d04cbe3bc04569537271419
parent0465a50506023df0932fe0534fe6ac6712c0d854
packfile: close multi-pack-index in close_all_packs

Whenever we delete pack-files from the object directory, we need
to also delete the multi-pack-index that may refer to those
objects. Sometimes, this connection is obvious, like during a
repack. Other times, this is less obvious, like when gc calls
a repack command and then does other actions on the objects, like
write a commit-graph file.

The pattern we use to avoid out-of-date in-memory packed_git
structs is to call close_all_packs(). This should also call
close_midx(). Since we already pass an object store to
close_all_packs(), this is a nicely scoped operation.

This fixes a test failure when running t6500-gc.sh with
GIT_TEST_MULTI_PACK_INDEX=1.

Reported-by: Szeder Gábor <szeder.dev@gmail.com>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
packfile.c