Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature branch with single commit merged using fast-forward #292

Open
alexjeffburke opened this issue Jan 18, 2013 · 24 comments
Open

feature branch with single commit merged using fast-forward #292

alexjeffburke opened this issue Jan 18, 2013 · 24 comments

Comments

@alexjeffburke
Copy link

Hi,

The git-flow-feature has an explicit check around line 310 where it explicitly merges fast forward if the feature branch has one commit in it.

I don't really understand the rationale for this because though it's one commit it's still really useful to know it implemented a particular feature (which a real merge commit acts as the metadata for). It also seems very unaligned with proposed development model.

Happy to offer up a patch to make the --no-ff branch the default.

Thanks, Alex J Burke.

@dorner
Copy link

dorner commented Jan 21, 2013

Just found this myself today as well. There was an issue already raised and closed for this here: #100 but I agree that it does not match with the development model. Hopefully if enough people make a fuss we can get something changed here. (I'm not savvy enough to make this change privately.)

@Wizek
Copy link

Wizek commented Feb 18, 2013

Started watching both issues. I'm not sure about which way I prefer yet, but an option is almost always better than no option at all, isn't it?

@petervanderdoes
Copy link

A flag is introduced for this feature in my fork git-flow (AVH Edition)
My fork has diverged to much to make this into an easy pull request for nvie's gitflow,

Checkout the changelog for more information about bugfixes and new features implemented in my fork.

@diversario
Copy link

Agreed. At least I would like to see the rationale behind this.

@shatskiy
Copy link

Agreed - the behavior is not obvious, especially for new git flow users.

@zkat
Copy link

zkat commented Sep 20, 2013

One reason for having this flag is a workflow that involves a review process. I would like to be able to annotate the merge request with a ticket number, even when the ticket involved only a single commit. Yes, extra merge commits might add noise in general, but in a workflow like this it's important to track back to a ticket, without having to necessarily edit the commit message itself (since the ticket number may not have been there from the beginning)

@alexjeffburke
Copy link
Author

I've been very bad at commenting, but aside from my original observation I think many others have contributed their use cases and further justifyied the utility.

As it stands though the thing I am confused about is where to be contributing patches & improvements - with the original git-flow project being seemingly unmaintained and none of the forks blessed as a successor.

For the record I believe the 'AVH' fork included something like this change which was sat behind a flag (I beliee disabled by default), but it also had a late number of various other changes last I checked.

@alexjeffburke
Copy link
Author

  • late -> large

@AliSoftware
Copy link

+1 for at least adding an option to let the user force --no-ff even with the branch contains only one commit 👍

I was struggling today to understand why I didn't had my merge commit and why it suddenly performed a fast-forward, had to wonder what I did wrong etc… until I discovered it was gitflow itself which was doing this without telling me about it.

If I start a quick fix that only takes one commit and I explicitly don't want a merge commit and fast-forward, I simply commit directly on my develop branch. I always did this. If I create a feature branch, even for one commit, that's for that branch to be kept, not to magically disappear (because of the fast-forward) when I merge. If I don't wanted this branch I would have commited directly on develop and wouldn't have created the feature branch from the beginning.

At least please add a flag or config entry to let the user choose which behavior he wishes, instead of unexpectidly disabling the fast-forward on some (understandable but arbitrary) conditions 😉

@petervanderdoes
Copy link

My fork git-flow (AVH Edition) has the option to set flags as defaults, that way you can always do a --no-ff without typing it. See the Wiki for more information.

My fork has diverged to much to make this into an easy pull request for nvie's gitflow,

Checkout the changelog for more information about bugfixes and new features implemented in my fork.

@AliSoftware
Copy link

@petervanderdoes Thanks.

Actually to be fair I'm not using gitflow command line but SourceTree GUI which seems to use @nvie 's gitflow command line internally. Not sure if I can make SourceTree use an alternate git-flow version/executable and how?

@brandon-rhodes
Copy link

In closing issue #100, @nvie is simply mistaken: he comments that “the extra merge commit does not add anything and only complicates the branch tree needlessly” whereas, in fact, the merge’s comment is the only record left for future generations denoting the fact that (a) a feature branch was created, and (b) what the name of the feature branch actually was. Without an explicit, no-fast-forward merge, the project history completely loses the information that the commit was a branch, and was a feature, at all!

@andrew13
Copy link

andrew13 commented Jan 3, 2014

It would be nice to have this addressed

@SlainVeteran
Copy link

I would be tempted to remove the explicit --ff option from the single commit case. Then, the built-in git merge configuration merge.ff=false can be used to set --no-ff for all merges (including those by flow finish), with the default git configuration replicating the current behaviour.

@killerwolf
Copy link

+1

@skyellin
Copy link

At the very least, it would be nice if this "feature" were documented.

@PLaRoche
Copy link

Any progress on this, I know I'm rehashing an old one but we are seeing no way to use sourcetree to close a feature with it not fast forwarding the merge. There is a setting in the prefs, but it does not seem to respect it

@killerwolf
Copy link

+1

1 similar comment
@zainfathoni
Copy link

+1

@petervanderdoes
Copy link

See "Is this repository dead? #6340"

@diversario
Copy link

Turns out you can just use git without this! 😝

@Mehradzie
Copy link

Not documented, and not give a use an option.
These type of decisions should be taken on the user's side. Why not to put a little checkbox on the "Finish Release" dialog and if you're really a big fan of this feature let it be ticked by default but since I am not I can go untick it, right?

@Mehradzie
Copy link

Every new release, this is the first thing I go check :D and it's never there :/

@mtrezza
Copy link

mtrezza commented Mar 3, 2018

Just found that there is also a checkbox for this in the preferences. So no need to check it for every branch merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests