Hi Elijah, On Tue, 11 Dec 2018, Elijah Newren wrote: > Differences since v3 (full range-diff below): > - Fixed the redundant "fatal: error:" error message prefixes, as pointed > out by Duy > - Rebased on 2.20.0 - Fixed the "comptable" tyop This, and the range-diff, look reasonable to me. Thanks, Dscho > Elijah Newren (8): > rebase: make builtin and legacy script error messages the same > rebase: fix incompatible options error message > t5407: add a test demonstrating how interactive handles --skip > differently > am, rebase--merge: do not overlook --skip'ed commits with post-rewrite > git-rebase, sequencer: extend --quiet option for the interactive > machinery > git-legacy-rebase: simplify unnecessary triply-nested if > rebase: define linearization ordering and enforce it > rebase: Implement --merge via the interactive machinery > > .gitignore | 1 - > Documentation/git-rebase.txt | 17 +--- > Makefile | 1 - > builtin/am.c | 9 ++ > builtin/rebase.c | 30 ++---- > git-legacy-rebase.sh | 65 ++++++------ > git-rebase--am.sh | 2 +- > git-rebase--common.sh | 2 +- > git-rebase--merge.sh | 164 ------------------------------ > sequencer.c | 23 +++-- > sequencer.h | 1 + > t/t3406-rebase-message.sh | 7 +- > t/t3420-rebase-autostash.sh | 78 ++------------ > t/t3421-rebase-topology-linear.sh | 10 +- > t/t3425-rebase-topology-merges.sh | 15 ++- > t/t5407-post-rewrite-hook.sh | 34 +++++++ > t/t9903-bash-prompt.sh | 2 +- > 17 files changed, 121 insertions(+), 340 deletions(-) > delete mode 100644 git-rebase--merge.sh > > Range-diff: > -: ---------- > 1: 2e8b1bcb8b rebase: make builtin and legacy script error messages the same > 1: 2f4bdd1980 ! 2: eba87828c6 rebase: fix incompatible options error message > @@ -9,12 +9,12 @@ > understood by separate backends were used: > > $ git rebase --keep --ignore-whitespace > - fatal: error: cannot combine interactive options (--interactive, --exec, > + fatal: cannot combine interactive options (--interactive, --exec, > --rebase-merges, --preserve-merges, --keep-empty, --root + --onto) with > am options (.git/rebase-apply/applying) > > $ git rebase --merge --ignore-whitespace > - fatal: error: cannot combine merge options (--merge, --strategy, > + fatal: cannot combine merge options (--merge, --strategy, > --strategy-option) with am options (.git/rebase-apply/applying) > > Note that in both cases, the list of "am options" is > @@ -33,18 +33,17 @@ > break; > > if (is_interactive(&options) && i >= 0) > -- die(_("error: cannot combine interactive options " > +- die(_("cannot combine interactive options " > - "(--interactive, --exec, --rebase-merges, " > - "--preserve-merges, --keep-empty, --root + " > - "--onto) with am options (%s)"), buf.buf); > -+ die(_("error: cannot combine am options " > ++ die(_("cannot combine am options " > + "with interactive options")); > if (options.type == REBASE_MERGE && i >= 0) > -- die(_("error: cannot combine merge options (--merge, " > +- die(_("cannot combine merge options (--merge, " > - "--strategy, --strategy-option) with am options " > - "(%s)"), buf.buf); > -+ die(_("error: cannot combine am options " > -+ "with merge options ")); > ++ die(_("cannot combine am options with merge options ")); > } > > if (options.signoff) { > @@ -56,15 +55,15 @@ > 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)")" > -+ die "$(gettext "error: cannot combine am options with interactive options")" > +- die "$(gettext "fatal: cannot combine interactive options (--interactive, --exec, --rebase-merges, --preserve-merges, --keep-empty, --root + --onto) with am options ($incompatible_opts)")" > ++ die "$(gettext "fatal: cannot combine am options with interactive options")" > 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)")" > -+ die "$(gettext "error: cannot combine am options with merge options")" > +- die "$(gettext "fatal: cannot combine merge options (--merge, --strategy, --strategy-option) with am options ($incompatible_opts)")" > ++ die "$(gettext "fatal: cannot combine am options with merge options")" > fi > fi > fi > 2: cc33a8ccc1 = 3: 15d929edb2 t5407: add a test demonstrating how interactive handles --skip differently > 3: f5838ef763 = 4: c9d6d5141e am, rebase--merge: do not overlook --skip'ed commits with post-rewrite > 4: 50dc863d9f = 5: 0b19ad8e2d git-rebase, sequencer: extend --quiet option for the interactive machinery > 5: 35cf552f27 ! 6: 5ded8654ec git-legacy-rebase: simplify unnecessary triply-nested if > @@ -18,7 +18,7 @@ > moving the innermost conditional to the outside, allowing us to remove > the test on git_am_opt entirely and giving us the following form: > > - if incomptable_opts: > + if incompatible_opts: > if interactive: > show_error_about_interactive_and_am_incompatibilities > if rebase-merge: > @@ -44,18 +44,18 @@ > then > - if test -n "$incompatible_opts" > - then > -- die "$(gettext "error: cannot combine am options with interactive options")" > +- die "$(gettext "fatal: cannot combine am options with interactive options")" > - fi > -+ die "$(gettext "error: cannot combine am options with interactive options")" > ++ die "$(gettext "fatal: cannot combine am options with interactive options")" > fi > - if test -n "$do_merge"; then > - if test -n "$incompatible_opts" > - then > -- die "$(gettext "error: cannot combine am options with merge options")" > +- die "$(gettext "fatal: cannot combine am options with merge options")" > - fi > + if test -n "$do_merge" > + then > -+ die "$(gettext "error: cannot combine am options with merge options")" > ++ die "$(gettext "fatal: cannot combine am options with merge options")" > fi > fi > > 6: 2a3d8ff1c1 = 7: bb8e5a4527 rebase: define linearization ordering and enforce it > 7: 58371d377a ! 8: 5de428d695 rebase: Implement --merge via the interactive machinery > @@ -142,14 +142,15 @@ > imply_interactive(&options, "--root without --onto"); > > @@ > + break; > > if (is_interactive(&options) && i >= 0) > - die(_("error: cannot combine am options " > +- die(_("cannot combine am options " > - "with interactive options")); > - if (options.type == REBASE_MERGE && i >= 0) > -- die(_("error: cannot combine am options " > -- "with merge options ")); > -+ "with either interactive or merge options")); > +- die(_("cannot combine am options with merge options ")); > ++ die(_("cannot combine am options with either " > ++ "interactive or merge options")); > } > > if (options.signoff) { > @@ -205,13 +206,13 @@ > then > - if test -n "$interactive_rebase" > - then > -- die "$(gettext "error: cannot combine am options with interactive options")" > +- die "$(gettext "fatal: cannot combine am options with interactive options")" > - fi > - if test -n "$do_merge" > + if test -n "$actually_interactive" || test "$do_merge" > then > -- die "$(gettext "error: cannot combine am options with merge options")" > -+ die "$(gettext "error: cannot combine am options with either interactive or merge options")" > +- die "$(gettext "fatal: cannot combine am options with merge options")" > ++ die "$(gettext "fatal: cannot combine am options with either interactive or merge options")" > fi > fi > > @@ -225,7 +226,7 @@ > # linear history? > ! (git rev-list --parents "$onto".."$orig_head" | sane_grep " .* ") > /dev/null > @@ > - GIT_PAGER='' git diff --stat --summary "$mb" "$onto" > + GIT_PAGER='' git diff --stat --summary "$mb_tree" "$onto" > fi > > +if test -z "$actually_interactive" && test "$mb" = "$orig_head" > -- > 2.20.0.8.g5de428d695 > >