From: Jonathan Nieder Date: Tue, 11 Jan 2011 06:52:44 GMT Subject: Re: clone breaks replace Message-ID: <20110111065244.GB8631@burratino> In-Reply-To: <20110111054735.GC10094@sigill.intra.peff.net> Jeff King wrote: > On Fri, Jan 07, 2011 at 07:43:40PM -0500, Phillip Susi wrote: >> What parts do not respect replacement? More importantly, what parts >> will be broken? [...] > Off the top of my head, I don't know. I suspect it would take somebody > writing a patch to create such an incomplete repository (or making one > manually) and seeing how badly things broke. I have two worries: - first, how easily can the replacement be undone? (as you mention below) - second, what happens if the two ends of transport have different replacements? That second worry is the more major in my opinion. Shallow clones are a different story --- they do not fundamentally change the history and they have special support in git protocol. It is possible to punt on both by saying that (1) replacements _cannot_ be undone --- a second replacement is needed --- and (2) the receiving end of a connection is not allowed to have any replacements for objects in common that the sending end does not have, but then does that buy you anything significant over a filter-branch?