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.

Edited Aug 14, 2017 by Toon Claes
Assignee Loading
Time tracking Loading