Deduplication of git objects, reducing disk space of repository forks
Description
Currently GitLab copies the whole repository when forking a repository, which leads to a lot of redundant objects on the server.
Proposal
Storing all objects in a global objects store would lead to a better disk space utilization on the server. There are similarities to Git LFS which lacks removing orphan objects aswell, the solution would cover this problem in the same manner. Although other tasks become harder to manage (i.e. finding and removing orphan objects in normal git repositories) as well as seperation of git objects and other data in the git folder (like branches, tags, hooks, ...). Artifactory does a really good job already and may be inspiring. The needed parts are LGPLv3 licensed, however Artifactory is written in Java, making reusing code parts nearly impossible.