Ilya Kantor <ilya.a.kantor@xxxxxxxxxx> writes: > ...It seems sane to git gc --auto from command that are expected to take time. > > That's probably the reason why it's not called on commits and > called on receive-pack. > > But then why call it on merges? Especially on those that have no > conflicts and should run fast. Also, merges are not supposed to > introduce unreachable objects. The primary thing we want the users get out of running "gc --auto" during these operations are not the removal of unreachable garbage. It is primarily run to reduce the number of loose objects and prevent great many numbers of tiny packfiles from being accumulated, so the places you see calls to it tend to be after creating new objects in the repository.