fast-import mirrors: support false $Girocco::Config::delay_gfi_redelta
commitf004b4b5a4f94032664ec66f9eb55cd58d0994ec
authorKyle J. McKay <mackyle@gmail.com>
Wed, 24 Aug 2016 21:10:59 +0000 (24 14:10 -0700)
committerKyle J. McKay <mackyle@gmail.com>
Wed, 24 Aug 2016 21:10:59 +0000 (24 14:10 -0700)
tree3b47062658cd1409e2ac02f49592db1e19f40e5d
parent8608de32e9f0d042bb43504ac03949d550413b8e
fast-import mirrors: support false $Girocco::Config::delay_gfi_redelta

Packs created by git fast-import are very poor quality (very poor deltas
and very poor object order).

Girocco ALWAYS performs redeltification on them at some point to correct
this problem.

Only foreign vcs mirrors that use git fast-import (e.g. darcs, bzr, hg)
can generate such packs (git svn mirrors never generate such packs).

Previously Girocco always delayed this redeltification until the next gc
(full or mini) triggers.  However this leaves open the possibility that
a client could end up fetching some of these undesirable deltas during
the period where these packs (generated by mirror update fetches) exist
but gc has not yet triggered to redeltify them.

Introduce a new setting $Girocco::config::delay_gfi_redelta that is set
to true (to preserve the previous behavior) but which can be changed to
false in order to cause the poor quality git fast-import packs to
undergo redeltifcation at the next opportunity (a "mini" gc is
immediately requested when such a pack is generated).

While changing $Girocco::config::delay_gfi_redelta to false is not
recommended, there may be some situations in which eliminating the poor
git fast-import created packs as quickly as possible is desirable and so
the option to do so is now available.

Signed-off-by: Kyle J. McKay <mackyle@gmail.com>
Girocco/Config.pm
jobd/gc.sh
jobd/update.sh