Skip to content

git: Speed up fetches by disabling the logic to show forced updates

By default, git-fetch(1) will compute for every reference it's about to fetch whether the update is a forced update or a normal one. This info is used in two different ways:

1. To compute whether the branch update should be allowed in the
   first place. This is pointless though in the case where we ask
   git-fetch(1) to force all updates anyway.

2. To provide information via stdout whether the reference has been
   force-updated or not. This is pointless in the case where we ask
   git-fetch(1) to be quiet.

And while this check can indeed be quite expensive and take dozens of seconds, git-fetch(1) will still perform it even when asked to be quiet and to force-update any references.

Skip this computation in object pools and in some cases when doing fetches via the localrepo to them up.

Fixes #4377 (closed).

Merge request reports