Subject: Re: [PATCH v2 1/5] replace: forbid replacing an object with one of a different type

From: Junio C Hamano <[email-masked]>
Date: Thu, 29 Aug 2013 09:04:03 -0700

Christian Couder <[email-masked]> writes:

> But if all the objects that point to an object, called O, are to be
> replaced, then in most cases object O probably doesn't need to be
> replaced. It's probably sufficient to create the new object, called
> O2, that would replace object O and to replace all the objects
> pointing to object O with objects pointing to O2.

Hmmmm.

What the above says, with "probably" and "most cases", can easily
inferred by anybody remotely intelligent, and the only reason to
have something like the above paragraph would be if it assures that
the statement holds without these qualifications to weaken it, which
it doesn't.  I am not sure this paragraph adds much value.

> The only case where someone might really want to replace object 0,
> with an object O2 of a different type, and all the objects pointing to
> it, is if it's really important, perhaps for external reasons, to have
> object O's SHA1 point to O2.

The same comment applies here.

> And anyway, if one really wants to do that, it can still be done using
> "git update-ref".

And I really do not think this sentence is right---you can justify
with the same sentence to remove "git replace" wrapper.

The earlier suggestion to bypass the new hand-holding with "--force"
is more sensible, I think.