Re: [PATCH] merge: allow using --no-ff and --ff-only at the same time
- From
Miklos Vajna <vmiklos@suse.cz>
- Date
- Jul 1, 2013, 16:10 UTC
- Message-ID
- <20130701161009.GI17269@suse.cz>
- In-Reply-To
- <7vmwq6i93m.fsf@alter.siamese.dyndns.org>
On Mon, Jul 01, 2013 at 08:38:21AM -0700, Junio C Hamano <gitster@pobox.com> wrote:
Show 5 quoted lines
> As to "--no-ff" vs "--ff-only", "--ff-only" has always meant "only > fast-forward updates are allowed. We do not want to create a merge > commit with this operation." I do agree with you that the proposed > patch changes the established semantis and may be too disruptive a > thing to do at this point.
Hmm, one way around this may be to add a new option that is basically the same as --no-ff --ff-only (with the patch), except it has a different name, so it's not confusing. 'git merge --rebase' could be used for this, but such a name is misleading as well. Anyone has a better naming idea? :-)
Show 12 quoted lines
> If one were designing Git merge from scratch today, however, I could
> see one may have designed these as two orthogonal switches.
>
> - Precondition on the shape of histories being merged ("fail unless
> fast forward" does not have to be the only criteria);
>
> - How the update is done ("fast forward to the other head", "always
> create a merge", "fast forward if possible, otherwise merge" do
> not have to be the only three choices).
>
> I do not fundamentally oppose to such a new feature, but they have
> to interact sanely with the current "--ff={only,only,never}".OK, so if I get it right, the problem is that users got used to that the --ff-only not only means a precondition for the merge, but also means "either don't create a merge commit or fail", while my patch would change this second behaviour.
I could imagine then new switches, like 'git merge --pre=ff --update=no-ff" could provide these, though I'm not sure if it makes sense to add such generic switches till the only user is "ff".