Re: [PATCH] merge: allow using --no-ff and --ff-only at the same time
flat view
From: Miklos Vajna <hidden>
Date: 2016-06-15 22:57:57
On Mon, Jul 01, 2013 at 08:38:21AM -0700, Junio C Hamano [off-list ref] wrote:
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? :-)
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".
Attachments
- signature.asc [application/pgp-signature] 198 bytes