Improve maintenance stratgies exposed by git-maintenance(1)

We currently only have one specific maintenance strategy for fine-grained tasks in git-maintenance(1). There may be multiple different strategies though that one wants to pick:

  • Multi-pack indices may help in larger repositories.
  • Geometric repacking may help in the largest repositories to keep at bay how often we rewrite on-disk files.
  • Cruft packs may help when accumulating many unreachable objects.

Ideally, we would have maintenance strategies that apply to different kinds of repositories with the ups and downs of these respective strategies. Furthermore, strategies should apply both when manually running maintenance, but also when running scheduled maintenance.

Edited by Patrick Steinhardt