mirror of
https://github.com/git/git
synced 2024-08-24 18:26:02 +00:00
![Jeff King](/assets/img/avatar_default.png)
We currently use fast-import only to create a large number of objects, and then run O(n) invocations of pack-objects to turn them into packs. We can do this faster by just asking fast-import to checkpoint and create a pack for each (after telling it not to turn loose tiny packs). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
26 lines
526 B
Bash
26 lines
526 B
Bash
# Helpers for dealing with large numbers of packs.
|
|
|
|
# create $1 nonsense packs, each with a single blob
|
|
create_packs () {
|
|
perl -le '
|
|
my ($n) = @ARGV;
|
|
for (1..$n) {
|
|
print "blob";
|
|
print "data <<EOF";
|
|
print "$_";
|
|
print "EOF";
|
|
print "checkpoint"
|
|
}
|
|
' "$@" |
|
|
git fast-import
|
|
}
|
|
|
|
# create a large number of packs, disabling any gc which might
|
|
# cause us to repack them
|
|
setup_many_packs () {
|
|
git config gc.auto 0 &&
|
|
git config gc.autopacklimit 0 &&
|
|
git config fastimport.unpacklimit 0 &&
|
|
create_packs 500
|
|
}
|