Use snapshot RPC to move a project across shards
When looking into https://gitlab.com/gitlab-org/gitlab/issues/35864, we noticed a few issues with the current way of moving a repo:
- Hidden refs (e.g.
refs/keep-around/X,refs/merge-requests/Y, etc.) are not synced #36174 (closed) - Mirror settings are not preserved
We could address those issues individually, or...
Proposal
A gRPC was added for Geo to make a tar snapshot of a repo and copy the tarball over as a whole, see gitaly#990 (closed).
If we can use the same mechanism to move a repo across shards, we can overcome all of the above problems, and maybe more.