Thread (3 messages) read the whole thread 3 messages, 2 authors, 2005-09-11

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

From: Linus Torvalds <torvalds@osdl.org>
Date: 2005-09-11 19:07:08
Also in: lkml


On Sun, 11 Sep 2005, Sam Ravnborg wrote:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help