[PATCH 0 of 1] merge: add --no-fast-forward to suppress fast-forward merge

FUJIWARA Katsunori fujiwara at ascade.co.jp
Sun Mar 6 21:48:02 CST 2011


Hi, Matt.

At Sun, 06 Mar 2011 10:57:48 -0600,
Matt Mackall wrote:
> 
> On Sun, 2011-03-06 at 19:24 +0900, FUJIWARA Katsunori wrote:
> > The behavior of Mercurial on merge between named branches is changed
> > to 'fast-forward' style since 1.8 by 9e7e24052745.
> > 
> > There is quite a few people who requires 'old'(= not fast-forward)
> > style merge, but there is no way to choose 'old' style on merge.
> 
> This is the first I've heard that. Why do they require it?

They (and I) require old style merge, because of what you described as
"Downsides".

> Downsides:
> 
> - it gives merges that aren't merges by the normal definition and aren't
> skipped by log -M or matched by the merge() revset
> - named branches are more likely to become disconnected in history

and easy-ness for backing-out merging changeset.

> > So, I tried to implement experimental patch to add '--no-fast-forward'
> > option.
> 
> I'd rather not do that. Then people will have to know what a 'fast
> forward' merge is. And invariably, people won't know they've done the
> wrong type of merge until it's already committed. So we're either going
> to do this type of merge or we aren't.

Oh! I have thought that introducing of fast-forward style merge are
already authorized, so that there should be the way to avoid it.

Yes, I agree to choose one of merge styles rather than add
'--no-fast-forward' to current implementation, and:

> I'm leaning towards reverting this change and releasing an early 1.8.1,
> unless people have strong opinions on why we want to keep it.

+1 to revert


More information about the Mercurial-devel mailing list