From: Yann Dirson Date: Thu, 18 May 2006 22:20:45 GMT Subject: Re: [PATCH] [BUG] Add a test to check git-prune does not throw away revs hidden by a graft. Message-ID: <20060518222045.GB6535@nowhere.earth> In-Reply-To: <7viro3nh07.fsf@assigned-by-dhcp.cox.net> On Thu, May 18, 2006 at 02:46:16PM -0700, Junio C Hamano wrote: > Linus Torvalds writes: > > > Is it/does it? > > > > I'd assume that if you have a graft, you _want_ the history to be hidden > > and pruned. > > > > That's how you'd drop history, if you wanted to do it on purpose. > > I haven't looked at what the test does, but I think he is > talking about the opposite. fsck by design does not honor > grafts, and if you grafted a history back to your true root > commit, that "older" history will be lost. I'm not sure I understand what you're saying. AFACT fsck does not ignore grafts: if a rev is not accessible from heads because of a graft, prune drops it, and fsck does not see a problem. Linus, I understand your point, but the current situation is problematic: a graft does not get propagated by cg-clone (and I suppose not by git-clone or git-fetch either), so cloning a tree which has undergone such a pruning operation results in an incomplete clone (indeed it is how I met the problem). Since grafts are supposed to have local effect only (as far as I understand), I see it as a bad indication to have such a remote effect. Maybe to make things safe, prune should by default consider both physical and grafted parents as accessible, and a flag could be added to get the current behaviour for people really knowing what they're doing ? Best regards, -- Yann Dirson | Debian-related: | Support Debian GNU/Linux: | Freedom, Power, Stability, Gratis http://ydirson.free.fr/ | Check