Shells: Implement the use of git-clone(1) again
In the past, the GIT_STRATEGY 'clone' used to use git-clone(1), but at some point we needed clone a specific reference. For example for merged result pipelines we'd clone refs/merge-requests//merge. It is not possible with git-clone(1) a ref, so the implementation was rewritten to use git-init(1) + git-fetch(1).
Now we've been working to upstream changes to Git and soon it will
support argument --revision. This option allows use to use git-clone(1) to
clone and checkout a specific reference.
Prepare the code to use git-clone(1) with argument --revision. The changes
are behind feature flag FF_USE_GIT_NATIVE_CLONE, and only should be used
if a the helper image contains a Git version that supports --revision.
Closes: Can we make runner use git-clone(1) again (#37947 - closed) & Use git-clone with --revision (#38576 - closed)