Re: What's up with the GIT archive on www.kernel.org?

Linus Torvalds
2005-09-11T19:07:08Z

On Sun, 11 Sep 2005, Sam Ravnborg wrote:
> >
> > Absolutely. The mirroring has been slow again lately. I've packed my
> > archive, but I suspect others should much more aggressively now be using
> > the "objects/info/alternates" information to point to my tree, so that
> > they don't even need to have their objects at all (no packing
> > even necessary - just running "git prune-packed" on peoples archives
> > would get rid of any duplicate objects when I pack mine).
>
> Can you post a small description how to utilize this method?

Just do

echo /pub/scm/linux/kernel/git/torvalds/linux-2.6.git/objects > objects/info/alternates

in your tree, and that will tell git that your tree can use my object
directory as an "alternate" source of objects. At that point, you can
remove all objects that I have.

However, that only works with a local directory - you can't say that the
alternate object directory is over the network (unless you use NFS or
similar, of course ;).

Another potential problem is that while the above makes git understand to
pick the objects from my directory, it can in theory cause problems for
mirrors etc - since they mirror things to a different location and/or may
not mirror all of it anyway.

Anyway, modulo those caveats, you can then just do

git prune-packed

and it will remove all unpacked objects in your git archive that can be
reached through a pack-file - including any packfiles in _my_ directory.

Then you never need to pack your own objects any more. Just leave
everything unpacked, and rely on me packing every once in a while, and
just do "git prune-packed" when I do.

That allows a site like kernel.org to effectively share 99% of all
objects, and do it efficiently.

Linus