On Thu, Jul 06, 2017 at 10:01:05AM -0700, Bryan Turner wrote: > I also want to add that Bitbucket Server 5.x includes totally > rewritten GC handling. 5.0.x automatically disables auto GC in all > repositories and manages it explicitly, and 5.1.x fully removes use of > "git gc" in favor of running relevant plumbing commands directly. We > moved away from "git gc" specifically to avoid the "git reflog expire > --all", because there's no config setting that _fully disables_ > forking that process. FWIW, I think auto-gc in general is not a good way to handle maintenance on a busy hosting server. Repacking can be very resource hungry (both CPU and memory), and it needs to be throttled. You _could_ throttle with an auto-gc hook, but that isn't very elegant when it comes to re-queueing jobs which fail or timeout. The right model IMHO (and what GitHub uses, and what I'm guessing Bitbucket is doing in more recent versions) is to make note of write operations in a data structure, then use that data to schedule maintenance in a job queue. But that can never really be part of Git itself, as the notion of a system job queue is outside its scope. -Peff