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.

Assignee Loading
Time tracking Loading