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).