Traditionally "git merge --no-commit" meant just that: do not create a new commit even when a merge succeeds. But this leads to confusion when the merged commit is a descendant of the current commit, in which case we succeed the merge by fast-forwarding and without creating a new commit. Make --no-commit imply --no-ff; --no-commit is a request by the user to tweak the resulting merge and it is clear indication that the user wants to have a merge, even if it is an extra one, to futz with. There is a test that relies on --no-commit silently fast forwarding; that is obviously broken by this change. Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- * This is another possibility, which I think is worse than the other one in practice but the justification sounds more respectable. Unlike the other one, this will still make --no-commit a no-op when you are already up-to-date. As I do not think --no-ff makes much sense in my own workflow (either here or dayjob) it is not exactly my itch, but I suspect that people who wanted to have --no-ff may want to create an extra commit even in such a case; it may be a bug to allow up-to-date when --no-ff is given. Yes, it would make the --no-ff even more insane than it already is, but I suspect it would be more consistent with the original reasoning of wanting to have the option in the first place, namely, to leave the trace of the fact that a "merge" was done at that point in the history. builtin-merge.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/builtin-merge.c b/builtin-merge.c index b6b8428..fa86799 100644 --- a/builtin-merge.c +++ b/builtin-merge.c @@ -874,6 +874,9 @@ int cmd_merge(int argc, const char **argv, const char *prefix) option_commit = 0; } + if (!option_commit) + allow_fast_forward = 0; + if (!argc) usage_with_options(builtin_merge_usage, builtin_merge_options); -- 1.6.5.1.107.gba912 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html