Hi, On Wed, 31 Jan 2007, Andreas Ericsson wrote: > Bill Lear wrote: > > We have a company repo used by many people throughout the day. When/how > > can I repack this? I have come to adopt this approach: > > > > % mv project project.pack > > % cd project.pack > > % GIT_DIR=. git repack -a -d > > % cd .. > > % mv project.pack project > > > > Renaming the directory isn't necessary. The packs won't be used until they > have a .idx file. That .idx-file is written after the packfile, so any > operations on the repo will simply use the old, loose, objects before the > packing is completed. > > The worst thing that can happen is that an object about to be fetched is > deleted in its loose version before the upload-pack program can open it, > but that's no worse than having the entire directory being moved out from > under it. AFAIR this case is handled gracefully by git. If the object it is still accessing moves to a(nother) pack, git will still find it. > On a side-note, this is a grade A example of something that should > typically be done sunday night at 4am. Actually, I'd recommend git-gc. It does not even call git-prune anymore, so there is no excuse. I even do it interactively very often, and I just love the fact that "gc" is so much shorter than "repack -a -d", _plus_ it also does other cleanup tasks. Ciao, Dscho - 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