Fix reference transactions with RPCs which encode timestamps into generated data
Some RPCs use the current system time to generate commits, like e.g. when creating merges or doing rebases. This causes us to generate commits which not only depend on the input parameters, but also on external parameters like the system time. This breaks transactions as the likelihood that we generate the same commit hash across all members of the transaction is quite low.
One possible fix is to have the client pass in a timestamp as parameter which then gets used by all Gitalies. RPCs which are probably affected include:
- UserMergeBranch
- UserMergeToRef
- UserRebaseConfirmable
- UserCreateTag
- UserCherryPick
- UserCommitFiles
- UserRevert
- UserSquash
- UserApplyPatch
- UserUpdateSubmodule
- ResolveConflicts