зеркало из https://github.com/microsoft/git.git
Merge branch 'ds/midx-repack-to-batch-size'
The "--batch-size" option of "git multi-pack-index repack" command is now used to specify that very small packfiles are collected into one until the total size roughly exceeds it. * ds/midx-repack-to-batch-size: multi-pack-index: repack batches below --batch-size
This commit is contained in:
Коммит
9e8c7542cb
|
@ -51,11 +51,12 @@ repack::
|
|||
multi-pack-index, then divide by the total number of objects in
|
||||
the pack and multiply by the pack size. We select packs with
|
||||
expected size below the batch size until the set of packs have
|
||||
total expected size at least the batch size. If the total size
|
||||
does not reach the batch size, then do nothing. If a new pack-
|
||||
file is created, rewrite the multi-pack-index to reference the
|
||||
new pack-file. A later run of 'git multi-pack-index expire' will
|
||||
delete the pack-files that were part of this batch.
|
||||
total expected size at least the batch size, or all pack-files
|
||||
are considered. If only one pack-file is selected, then do
|
||||
nothing. If a new pack-file is created, rewrite the
|
||||
multi-pack-index to reference the new pack-file. A later run of
|
||||
'git multi-pack-index expire' will delete the pack-files that
|
||||
were part of this batch.
|
||||
+
|
||||
If `repack.packKeptObjects` is `false`, then any pack-files with an
|
||||
associated `.keep` file will not be selected for the batch to repack.
|
||||
|
|
2
midx.c
2
midx.c
|
@ -1394,7 +1394,7 @@ static int fill_included_packs_batch(struct repository *r,
|
|||
|
||||
free(pack_info);
|
||||
|
||||
if (total_size < batch_size || packs_to_repack < 2)
|
||||
if (packs_to_repack < 2)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -677,6 +677,7 @@ test_expect_success 'expire respects .keep files' '
|
|||
'
|
||||
|
||||
test_expect_success 'repack --batch-size=0 repacks everything' '
|
||||
cp -r dup dup2 &&
|
||||
(
|
||||
cd dup &&
|
||||
rm .git/objects/pack/*.keep &&
|
||||
|
@ -696,4 +697,21 @@ test_expect_success 'repack --batch-size=0 repacks everything' '
|
|||
)
|
||||
'
|
||||
|
||||
test_expect_success 'repack --batch-size=<large> repacks everything' '
|
||||
(
|
||||
cd dup2 &&
|
||||
rm .git/objects/pack/*.keep &&
|
||||
ls .git/objects/pack/*idx >idx-list &&
|
||||
test_line_count = 2 idx-list &&
|
||||
git multi-pack-index repack --batch-size=2000000 &&
|
||||
ls .git/objects/pack/*idx >idx-list &&
|
||||
test_line_count = 3 idx-list &&
|
||||
test-tool read-midx .git/objects | grep idx >midx-list &&
|
||||
test_line_count = 3 midx-list &&
|
||||
git multi-pack-index expire &&
|
||||
ls -al .git/objects/pack/*idx >idx-list &&
|
||||
test_line_count = 1 idx-list
|
||||
)
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
Загрузка…
Ссылка в новой задаче