Skip to content
  • Zeger-Jan van de Weg's avatar
    Allow public forks to be deduplicated · f837c22a38b1
    Zeger-Jan van de Weg authored
    When a project is forked, the new repository used to be a deep copy of everything
    stored on disk by leveraging `git clone`. This works well, and makes isolation
    between repository easy. However, the clone is at the start 100% the same as the
    origin repository. And in the case of the objects in the object directory, this
    is almost always going to be a lot of duplication.
    
    Object Pools are a way to create a third repository that essentially only exists
    for its 'objects' subdirectory. This third repository's object directory will be
    set as alternate location for objects. This means that in the case an object is
    missing in the local repository, git will look in another location. This other
    location is the object pool repository.
    
    When Git performs garbage collection, it's smart enough to check the
    alternate location. When objects are duplicated, it will allow git to
    throw one copy away. This copy is on the local repository, where to pool
    remains as is.
    
    These pools have a...
    f837c22a38b1