Geo: synchronize fork repositories with `--reference`
As being discussed in https://gitlab.com/gitlab-org/gitlab-ee/issues/3147#note_37334999 (and onward), Geo could utilize the --reference
option when cloning forks of projects where the repo is already synced. This would prevent sending all the blobs of the parent repo over again.
The usage of --reference
should be combined with:
--dissociate
Borrow the objects from reference repositories specified with the --reference options only to reduce network transfer, and stop borrowing from them
after a clone is made by making necessary local copies of borrowed objects. This option can also be used when cloning locally from a repository that
already borrows objects from another repository--the new repository will borrow objects from the same repository, and this option can be used to stop
the borrowing
But some more research might be needed, see https://gitlab.com/gitlab-org/gitlab-ee/issues/3147#note_37382071.