From: Jeff King Date: Sun, 21 Jan 2007 22:01:15 GMT Subject: Re: [PATCH] prune: --expire=time Message-ID: <20070121220114.GA24729@coredump.intra.peff.net> In-Reply-To: <7vejpo39zg.fsf@assigned-by-dhcp.cox.net> On Sun, Jan 21, 2007 at 03:17:07AM -0800, Junio C Hamano wrote: > If we wanted to apply this grace period conservatively, > protecting young objects is not enough. You need to protect > everything they refer to as well. In the above scenario, you That's not sufficient either. You might not _have_ the young objects yet, think the blob is dangling, and delete it. Meanwhile, the tree that references it arrives. IOW, 1. blob B arrives, but already exists 2. prune deletes unreference and old blob B 3. tree T arrives, referencing blob B I think this might be safe if you add objects in a top-down way (i.e., T before B). However, that doesn't make sense for the commit operation, in which you add blobs (with git-add), and then eventually construct a tree. -Peff