Hi Phillip, On Mon, Nov 12, 2018 at 10:21 AM Phillip Wood <phillip.wood@xxxxxxxxxxxx> wrote: > >> -Flags only understood by the am backend: > >> +The following options: > >> > >> * --committer-date-is-author-date > >> * --ignore-date > >> @@ -520,15 +512,12 @@ Flags only understood by the am backend: > >> * --ignore-whitespace > >> * -C > >> > >> -Flags understood by both merge and interactive backends: > >> +are incompatible with the following options: > >> > >> * --merge > >> * --strategy > >> * --strategy-option > >> * --allow-empty-message > >> - > >> -Flags only understood by the interactive backend: > >> - > > It's nice to see this being simplified :-) > >> -if test -n "$git_am_opt"; then > >> - incompatible_opts=$(echo " $git_am_opt " | \ > >> - sed -e 's/ -q / /g' -e 's/^ \(.*\) $/\1/') > >> - if test -n "$interactive_rebase" > >> +incompatible_opts=$(echo " $git_am_opt " | \ > >> + sed -e 's/ -q / /g' -e 's/^ \(.*\) $/\1/') > > > > Why are we no longer guarding this behind the condition that the user > > specified *any* option intended for the `am` backend? > > I was confused by this as well, what if the user asks for 'rebase > --exec=<cmd> --ignore-whitespace'? They'd still get an error message about incompatible options; see my email to Dscho. However, since it tripped you both up, I'll make the clean up here a separate commit with some comments. > >> +if test -n "$incompatible_opts" > >> +then > >> + if test -n "$actually_interactive" || test "$do_merge" > >> then > >> - if test -n "$incompatible_opts" > >> - then > >> - die "$(gettext "error: cannot combine interactive options (--interactive, --exec, --rebase-merges, --preserve-merges, --keep-empty, --root + --onto) with am options ($incompatible_opts)")" > >> - fi > >> - fi > >> - if test -n "$do_merge"; then > >> - if test -n "$incompatible_opts" > >> - then > >> - die "$(gettext "error: cannot combine merge options (--merge, --strategy, --strategy-option) with am options ($incompatible_opts)")" > >> - fi > >> + die "$(gettext "error: cannot combine am options ($incompatible_opts) with either interactive or merge options")" > >> fi > >> fi > >> > > If you want to change the error message here, I think you need to change > the corresponding message in builtin/rebase.c Indeed, will fix.