operations: Always use Git-based implementation of UserCherryPick
In order to advance our deprecation of libgit2, we have implemented the UserCherryPick RPC with plain Git commands. This feature flag was rolled out to production systems two weeks ago without any observed fallout. We have thus removed the flag once in the past via a0246dcb (operations: Remove CherryPickInPureGit feature flag, 2023-08-08).
Unfortunately, we had to roll back that change because we have observed
failures in QA. As it turns out, this failure was caused by a real, but
unrelated issue: Rails didn't pass a timestamp
to both UserCherryPick
and UserRevert, which means that the committer time was computed on the
Gitaly host. While this works in standalone Gitaly setups, it results in
a race in Gitaly Cluster where each of the backing Gitaly nodes may
arrive at a different committer time. The consequence is that in many
cases, the transactional vote will fail and thus we abort the change.
This issue exists regardless of whether we use Git2go or Git, and it has been fixed in Rails. So let's try a second time to remove the feature flag.
Closes [Feature flag] Enable pure git UserCherryPick (#5421 - closed).