Jeff King <peff <at> peff.net> writes: > > On Sat, Feb 27, 2010 at 10:37:25AM +0800, Tay Ray Chuan wrote: > > > yes, just make sure the objects/info/alternates file points to the > > location of that cloned repo's object directory; for example: > > > > $ echo /path/to/cloned/repo/.git/objects > .git/objects/info/alternates > > You will probably want to then get rid of anything in the child that is > now available in the alternates repository. > > I would have thought "git repack -adl" works, but I think there is > something a little funny in the logic. It reports "nothing new to pack", > but does not delete the loose objects. But packing first then worked: > > $ git clone large-parent child > $ echo $PWD/large-parent/.git/objects >child/.git/objects/info/alternates > $ cd child > > $ du -sh .git/objects > 51M .git/objects > > $ git repack -adl && du -sh .git/objects > Nothing new to pack. > 51M .git/objects > > $ git repack -ad && du -sh .git/objects > Counting objects: 3, done. > Delta compression using up to 2 threads. > Compressing objects: 100% (2/2), done. > Writing objects: 100% (3/3), done. > Total 3 (delta 0), reused 0 (delta 0) > 51M .git/objects > > $ git repack -adl && du -sh .git/objects > Nothing new to pack. > 20K .git/objects > > -Peff > Excellent, this is exactly what I need. Thanks very much Tay and Jeff. I now have a plan to write a script to attach and detach repositories to and from local mirrors on demand: attach = echo "/path/to/mirror" > .git/objects/info/alternates && git repack -adl && git repack -ad && git repack -adl detach = git repack -a && rm .git/objects/info/alternates Cheers, Steve -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html