On Fri, 9 May 2008, Brandon Casey wrote: > Geert Bosch wrote: > > > > On May 9, 2008, at 00:19, Jeff King wrote: > > > >> I like it. It makes an easy rule to say "packed objects _never_ get > >> pruned, they only get demoted to loose objects." And then of course > >> we have sane rules for pruning loose objects. > > > > Isn't there an issue with the "git gc" triggering because there > > may be too many loose unreferenced objects? > > Still, I do like the approach. > > This would be an argument for going the extra mile and having the loose > objects adopt the timestamp of their pack file. In the normal case they > would probably be pruned immediately during the same git-gc run. Well, not necessarily. If you created a large branch yesterday and you are deleting it today, then if you repacked in between means that those loose objects won't be more than one day old. Yet there could be enough of them to trigger auto gc. But that auto gc won't pack those objects since they are unreferenced. Hence auto gc will trigger all the time without making any progress. > > Maybe unreferenced objects and old refs should go to a .git/lost+found > > directory and be expired from there. This has a couple of benefits: > > > - Objects will not be accessible by ordinary git commands for a while, > > before they are really removed, avoiding surprises > > Unreferenced objects are sometimes used by other repositories which have > this repository listed as an alternate. So it may not be a good idea to > make the unreferenced objects inaccessible. Nah. If this is really the case then you shouldn't be running gc at all in the first place. Nicolas -- 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