Subject: Re: [PATCH] disable grafts during fetch/push/bundle

From: Junio C Hamano <[email-masked]>
Date: Wed, 05 Mar 2014 10:49:24 -0800

Jeff King <[email-masked]> writes:

> On Tue, Mar 04, 2014 at 12:52:18PM -0800, Junio C Hamano wrote:
>
> I do not recall any past discussion on this topic, and searching the
> archive only shows people echoing what I said above. Is this something
> we've promised to work in the past?

The history lesson is coming solely from my recollection of a
discussion I and Linus had on the list back when we were doing the
original "graft" and thinking about the interaction between it and
the object/history transfer; especially the "only add new ones, but
hide the ones that the user wants to be hidden" part is something
suggested by Linus but we couldn't implement back then, IIRC.

> Perhaps the right response is "grafts are broken, use git-replace
> instead". But then should we think about deprecating grafts?

I am sort of surprised to hear that question, actually ;-)

I didn't say that in the message you are responding to because I
somehow thought that everybody has been in agreement with these two
lines for a long while.  Ever since I suggested the "replace" as an
alternative "grafts done right" and outlined how it should work to
Christian while sitting next to him in one of the early GitTogether,
the plan, at least in my mind, has always been exactly that: grafts
were a nice little attempt but is broken---if you really wanted to
muck with the history without rewriting (which is still discouraged,
by the way), do not use "graft", but use "replace".