On Fri, Jul 12, 2019 at 11:18 PM Edmundo Carmona Antoranz <eantoranz@xxxxxxxxx> wrote: > @@ -1342,18 +1354,8 @@ int cmd_merge(int argc, const char **argv, const char *prefix) > if (verbosity < 0) > show_diffstat = 0; > > - if (squash) { > - if (fast_forward == FF_NO) > - die(_("You cannot combine --squash with --no-ff.")); > - if (option_commit > 0) > - die(_("You cannot combine --squash with --commit.")); > - /* > - * squash can now silently disable option_commit - this is not > - * a problem as it is only overriding the default, not a user > - * supplied option. > - */ > - option_commit = 0; > - } > + if (squash && fast_forward == FF_NO) > + die(_("You cannot combine --squash with --no-ff.")); > > if (option_commit < 0) > option_commit = 1; One question that I have is if it makes sense to set option_commit to 0 if the user didn't specify --commit when using --squash, so that the current behavior of git is not broken. Like you run merge --squash, git will stop as it currently does... but it would be possible to run with --squash --commit so that the revision is created if there are no issues to take care of (currently impossible, you would see that message saying "You cannot combine --squash with --commit.").