Implement branch operations RPCs
Closes https://gitlab.com/gitlab-org/gitaly/issues/498
I'd suggest reviewing each commit on its own, but as a summary:
one commit to change commit parsing to something like diff parsing, because it was tightly coupled to the commit package and getting commit(s) had to be used in a sending context (not Go context :P). Now we get GitCommit objects easily to be used in tests and whatnot.one commit to retireCommitsEqual
in favor ofrequire.Equal
as the latter does a better job at diffing.- one commit that does the implementation pointed at by the title.
Edited by Andrew Newdigate