]> git.ipfire.org Git - thirdparty/git.git/commit - midx.h
multi-pack-index: prepare for 'expire' subcommand
authorDerrick Stolee <dstolee@microsoft.com>
Mon, 10 Jun 2019 23:35:23 +0000 (16:35 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 11 Jun 2019 17:34:40 +0000 (10:34 -0700)
commitcff97116160e57741c9a954a51bfcb0057b3e89d
tree991cfb42fdd2eb373675c40f29108ee06b6fc61e
parent81efa161546d8fc9a89f2565d912137df8cc6c89
multi-pack-index: prepare for 'expire' subcommand

The multi-pack-index tracks objects in a collection of pack-files.
Only one copy of each object is indexed, using the modified time
of the pack-files to determine tie-breakers. It is possible to
have a pack-file with no referenced objects because all objects
have a duplicate in a newer pack-file.

Introduce a new 'expire' subcommand to the multi-pack-index builtin.
This subcommand will delete these unused pack-files and rewrite the
multi-pack-index to no longer refer to those files. More details
about the specifics will follow as the method is implemented.

Add a test that verifies the 'expire' subcommand is correctly wired,
but will still be valid when the verb is implemented. Specifically,
create a set of packs that should all have referenced objects and
should not be removed during an 'expire' operation. The packs are
created carefully to ensure they have a specific order when sorted
by size. This will be important in a later test.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-multi-pack-index.txt
builtin/multi-pack-index.c
midx.c
midx.h
t/t5319-multi-pack-index.sh