Ensure the exact revision is fetched by GitFetcher

When you trigger a QA pipeline from another project to this project you can specify the revisions of the components, like for example GITALY_SERVER_VERSION. In case the parent pipeline is triggered on the merged result, the merged revision commit revision might be passed to the child pipeline. In the pipeline in this project, it will use the GitFetcher in omnibus to git-clone the project, but by default that clone does not include the merged results.

To overcome this, it would be nice if there is done an additional git fetch <remote> $GITALY_SERVER_VERSION. This will ensure the revision exists in the cloned repo and that commit can be checked out.

Technical details

Chef's omnibus seems to be capable of detecting whether the commit exists, but there doesn't seem to be an extra call to Omnibus::GitFetcher#fetch to ensure it does.

Related issues

We've encountered this in Gitaly, see gitaly#3852 (comment 707134916).