From: Phillip Wood <phillip.wood123@gmail.com>
To: Elijah Newren via GitGitGadget <gitgitgadget@gmail.com>,
git@vger.kernel.org
Cc: Johannes.Schindelin@gmx.de, phillip.wood@dunelm.org.uk,
liu.denton@gmail.com, gitster@pobox.com, plroskin@gmail.com,
alban.gruin@gmail.com, szeder.dev@gmail.com, jrnieder@gmail.com,
emilyshaffer@google.com, Elijah Newren <newren@gmail.com>
Subject: Re: [PATCH v5 00/20] rebase: make the default backend configurable and change the default
Date: Sun, 16 Feb 2020 15:01:51 +0000 [thread overview]
Message-ID: <e2863381-174c-a55c-bb22-0c7aec9cabf4@gmail.com> (raw)
In-Reply-To: <pull.679.v5.git.git.1581802602.gitgitgadget@gmail.com>
Hi Elijah
On 15/02/2020 21:36, Elijah Newren via GitGitGadget wrote:
> This is v5 of en/rebase-backend based on v2.25.0. This series does a lot of
> work around making the default rebase backend configurable, and switches the
> default from the apply backend to the merge one.
>
> Changes since v4:
>
> * Added a note about an unfortunately-timed Ctrl-C to the docs, as
> suggested by SZEDER.
That's a good idea - I don't know why builtin/rebase.c only calls
rebase_write_basic_state() which writes head-name after it has run
format-patch and am. We write the patches to the state directory so it's
not like it saves us from having to clean up.
> * Addressed feedback from Phillip
> * Added a new patch at the end renaming the two backends. PLEASE take a
> look at its commit message for rationale and let me know if you agree
> with it.
I had a look and I think it is a good idea - merge and apply make much
more sense that interactive and am
> Note that in particular, the last patch at the end could have been partially
> squashed into other patches, but if people objected to the patch in general
> I wanted Junio to be able to take the rest of the series and just drop that
> patch.
>
> As with v4, there are some things mentioned earlier that are not addressed:
>
> * I did not remove the --am (now --apply) option as suggested by Phillip,
> since Junio and Phillip were still discussing whether it is
> wanted/needed. I kind of like having it, but have no strong opinion.
> * I noted the post-commit hook in the differences between backends. Emily
> is investigating what changes need to happen there, so I merely
> documented the existing differences.
> * I did not address the last two items Jonathan brought up as I couldn't
> find enough information to reproduce or understand the problems.
>
> Elijah Newren (20):
> git-rebase.txt: update description of --allow-empty-message
> t3404: directly test the behavior of interest
> rebase (interactive-backend): make --keep-empty the default
> rebase (interactive-backend): fix handling of commits that become
> empty
> t3406: simplify an already simple test
> rebase, sequencer: remove the broken GIT_QUIET handling
> rebase: make sure to pass along the quiet flag to the sequencer
> rebase: fix handling of restrict_revision
> t3432: make these tests work with either am or merge backends
> rebase: allow more types of rebases to fast-forward
> git-rebase.txt: add more details about behavioral differences of
> backends
> rebase: move incompatibility checks between backend options a bit
> earlier
> rebase: add an --am option
> git-prompt: change the prompt for interactive-based rebases
> rebase: drop '-i' from the reflog for interactive-based rebases
> rebase tests: mark tests specific to the am-backend with --am
> rebase tests: repeat some tests using the merge backend instead of am
> rebase: make the backend configurable via config setting
> rebase: change the default backend from "am" to "merge"
> rebase: rename the two primary rebase backends
>
> Documentation/config/rebase.txt | 6 +
> Documentation/git-rebase.txt | 170 +++++++++++++---
> builtin/rebase.c | 257 +++++++++++++++++--------
> contrib/completion/git-prompt.sh | 6 +-
> rebase-interactive.c | 7 +-
> rebase-interactive.h | 2 +-
> sequencer.c | 82 +++++---
> sequencer.h | 3 +-
> t/t3400-rebase.sh | 40 +++-
> t/t3401-rebase-and-am-rename.sh | 4 +-
> t/t3404-rebase-interactive.sh | 19 +-
> t/t3406-rebase-message.sh | 19 +-
> t/t3407-rebase-abort.sh | 6 +-
> t/t3420-rebase-autostash.sh | 22 +--
> t/t3421-rebase-topology-linear.sh | 48 ++---
> t/t3424-rebase-empty.sh | 126 ++++++++++++
> t/t3425-rebase-topology-merges.sh | 8 +-
> t/t3427-rebase-subtree.sh | 12 +-
> t/t3432-rebase-fast-forward.sh | 54 +++---
> t/t5407-post-rewrite-hook.sh | 16 +-
> t/t5520-pull.sh | 27 ++-
> t/t6047-diff3-conflict-markers.sh | 13 +-
> t/t7512-status-help.sh | 12 +-
> t/t9106-git-svn-commit-diff-clobber.sh | 3 +-
> t/t9903-bash-prompt.sh | 8 +-
> 25 files changed, 693 insertions(+), 277 deletions(-)
> create mode 100755 t/t3424-rebase-empty.sh
>
>
> base-commit: d0654dc308b0ba76dd8ed7bbb33c8d8f7aacd783
> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-679%2Fnewren%2Frebase-fixes-v5
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-679/newren/rebase-fixes-v5
> Pull-Request: https://github.com/git/git/pull/679
>
> Range-diff vs v4:
>
> 1: 3ea48d53940 = 1: 3ea48d53940 git-rebase.txt: update description of --allow-empty-message
> 2: 10fdd162a05 = 2: 10fdd162a05 t3404: directly test the behavior of interest
> 3: 179f82ab83e ! 3: 74cab9a32b3 rebase (interactive-backend): make --keep-empty the default
> @@ -4,13 +4,13 @@
>
> Different rebase backends have different treatment for commits which
> start empty (i.e. have no changes relative to their parent), and the
> - --keep-empty option was added at some point to allow adjusting behavior
> - for the interactive backend. The handling of commits which start empty
> - is actually quite similar to commit b00bf1c9a8dd (git-rebase: make
> - --allow-empty-message the default, 2018-06-27), which pointed out that
> - the behavior for various backends is often more happenstance than
> - design. The specific change made in that commit is actually quite
> - relevant as well and much of the logic there directly applies here.
> + --keep-empty option was added at some point to allow adjusting behavior.
> + The handling of commits which start empty is actually quite similar to
> + commit b00bf1c9a8dd (git-rebase: make --allow-empty-message the default,
> + 2018-06-27), which pointed out that the behavior for various backends is
> + often more happenstance than design. The specific change made in that
> + commit is actually quite relevant as well and much of the logic there
> + directly applies here.
Thanks for rewording this I think the new version is better for omitting
the reference to the interactive backend. The interdiff for this patch
and the next look good.
Thanks for working on this - it's turned into quite a large series
Best Wishes
Phillip
> It makes a lot of sense in 'git commit' to error out on the creation of
> empty commits, unless an override flag is provided. However, once
> @@ -405,8 +405,6 @@
> + test_cmp expect actual
> +'
> +
> -+GIT_SEQUENCE_EDITOR=: && export GIT_SEQUENCE_EDITOR
> -+
> +test_expect_success 'rebase --interactive with a variety of empty commits' '
> + git checkout -B testing localmods &&
> + test_must_fail git rebase --interactive upstream &&
> 4: c9542a2abe0 ! 4: 54b745c4ab5 rebase (interactive-backend): fix handling of commits that become empty
> @@ -98,6 +98,8 @@
> + With ask (implied by --interactive), the rebase will halt when
> + an empty commit is applied allowing you to choose whether to
> + drop it, edit files more, or just commit the empty changes.
> ++ Other options, like --exec, will use the default of drop unless
> ++ -i/--interactive is explicitly specified.
> ++
> +Note that commits which start empty are kept, and commits which are
> +clean cherry-picks (as determined by `git log --cherry-mark ...`) are
> @@ -224,7 +226,7 @@
> REBASE_PRESERVE_MERGES, PARSE_OPT_HIDDEN),
> OPT_RERERE_AUTOUPDATE(&options.allow_rerere_autoupdate),
> + OPT_CALLBACK_F(0, "empty", &options, N_("{drop,keep,ask}"),
> -+ N_("how to handle empty commits"),
> ++ N_("how to handle commits that become empty"),
> + PARSE_OPT_NONEG, parse_opt_empty),
> { OPTION_CALLBACK, 'k', "keep-empty", &options, NULL,
> N_("(DEPRECATED) keep empty commits"),
> @@ -342,8 +344,10 @@
> - if (!opts->no_commit) {
> + } else if (allow == 2) {
> + drop_commit = 1;
> -+ fprintf(stderr, _("No changes -- Patch already applied.\n"));
> -+ } // else allow == 0 and there's nothing special to do
> ++ fprintf(stderr,
> ++ _("dropping %s %s -- patch contents already upstream\n"),
> ++ oid_to_hex(&commit->object.oid), msg.subject);
> ++ } /* else allow == 0 and there's nothing special to do */
> + if (!opts->no_commit && !drop_commit) {
> if (author || command == TODO_REVERT || (flags & AMEND_MSG))
> res = do_commit(r, msg_file, author, opts, flags);
> @@ -404,9 +408,7 @@
> -test_expect_failure 'rebase --merge with a variety of empty commits' '
> - test_when_finished "git rebase --abort" &&
> +test_expect_success 'rebase --merge --empty=drop' '
> - git checkout -B testing localmods &&
> -- # rebase --merge should not halt on the commit that becomes empty
> -- git rebase --merge upstream &&
> ++ git checkout -B testing localmods &&
> + git rebase --merge --empty=drop upstream &&
> +
> + test_write_lines D C B A >expect &&
> @@ -414,6 +416,17 @@
> + test_cmp expect actual
> +'
> +
> ++test_expect_success 'rebase --merge uses default of --empty=drop' '
> + git checkout -B testing localmods &&
> +- # rebase --merge should not halt on the commit that becomes empty
> + git rebase --merge upstream &&
> +
> + test_write_lines D C B A >expect &&
> +@@
> + test_cmp expect actual
> + '
> +
> +-test_expect_success 'rebase --interactive with a variety of empty commits' '
> +test_expect_success 'rebase --merge --empty=keep' '
> + git checkout -B testing localmods &&
> + git rebase --merge --empty=keep upstream &&
> @@ -428,14 +441,12 @@
> + test_must_fail git rebase --merge --empty=ask upstream &&
> +
> + git rebase --skip &&
> -
> - test_write_lines D C B A >expect &&
> - git log --format=%s >actual &&
> -@@
> -
> - GIT_SEQUENCE_EDITOR=: && export GIT_SEQUENCE_EDITOR
> -
> --test_expect_success 'rebase --interactive with a variety of empty commits' '
> ++
> ++ test_write_lines D C B A >expect &&
> ++ git log --format=%s >actual &&
> ++ test_cmp expect actual
> ++'
> ++
> +test_expect_success 'rebase --interactive --empty=drop' '
> + git checkout -B testing localmods &&
> + git rebase --interactive --empty=drop upstream &&
> @@ -455,11 +466,19 @@
> +'
> +
> +test_expect_success 'rebase --interactive --empty=ask' '
> - git checkout -B testing localmods &&
> -- test_must_fail git rebase --interactive upstream &&
> ++ git checkout -B testing localmods &&
> + test_must_fail git rebase --interactive --empty=ask upstream &&
> -
> - git rebase --skip &&
> ++
> ++ git rebase --skip &&
> ++
> ++ test_write_lines D C B A >expect &&
> ++ git log --format=%s >actual &&
> ++ test_cmp expect actual
> ++'
> ++
> ++test_expect_success 'rebase --interactive uses default of --empty=ask' '
> + git checkout -B testing localmods &&
> + test_must_fail git rebase --interactive upstream &&
>
>
> diff --git a/t/t3427-rebase-subtree.sh b/t/t3427-rebase-subtree.sh
> 5: 9f66229d5cc = 5: f5170e71510 t3406: simplify an already simple test
> 6: 8d731fa39c3 = 6: 2791b818c4d rebase, sequencer: remove the broken GIT_QUIET handling
> 7: b6b6597eef8 = 7: 3dccb58d066 rebase: make sure to pass along the quiet flag to the sequencer
> 8: 0acefa988b1 = 8: 4e6f5ce8c46 rebase: fix handling of restrict_revision
> 9: 8c5b5b51330 = 9: bcd04ec4ded t3432: make these tests work with either am or merge backends
> 10: b8c087d6fb1 = 10: 45eb87b36b0 rebase: allow more types of rebases to fast-forward
> 11: b50a1741e0b = 11: 11e96b9a5fa git-rebase.txt: add more details about behavioral differences of backends
> 12: 58e6e4ffb3f = 12: 0c921919dce rebase: move incompatibility checks between backend options a bit earlier
> 13: 5478c730aca = 13: de1b0aaca88 rebase: add an --am option
> 14: db5e29bd818 = 14: e4c04d3cf8b git-prompt: change the prompt for interactive-based rebases
> 15: 413e190ac9a ! 15: f0f00c1e7fd rebase: drop '-i' from the reflog for interactive-based rebases
> @@ -54,17 +54,6 @@
> */
> return error(_("%s: Unable to write new index file"),
> _(action_name(opts)));
> -@@
> - int next = todo_list->current, offset, fd;
> -
> - /*
> -- * rebase -i writes "git-rebase-todo" without the currently executing
> -- * command, appending it to "done" instead.
> -+ * interactive backend writes "git-rebase-todo" without the currently
> -+ * executing command, appending it to "done" instead.
> - */
> - if (is_rebase_i(opts))
> - next++;
> @@
> return error(_("illegal label name: '%.*s'"), len, name);
>
> 16: 170be283a85 ! 16: 56486d4d694 rebase tests: mark tests specific to the am-backend with --am
> @@ -173,6 +173,163 @@
> testrebase " --interactive" .git/rebase-merge
>
>
> + diff --git a/t/t3421-rebase-topology-linear.sh b/t/t3421-rebase-topology-linear.sh
> + --- a/t/t3421-rebase-topology-linear.sh
> + +++ b/t/t3421-rebase-topology-linear.sh
> +@@
> + test_linear_range 'd e' c..
> + "
> + }
> +-test_run_rebase success ''
> ++test_run_rebase success --am
> + test_run_rebase success -m
> + test_run_rebase success -i
> + test_have_prereq !REBASE_P || test_run_rebase success -p
> +@@
> + test_cmp_rev e HEAD
> + "
> + }
> +-test_run_rebase success ''
> ++test_run_rebase success --am
> + test_run_rebase success -m
> + test_run_rebase success -i
> + test_have_prereq !REBASE_P || test_run_rebase success -p
> +@@
> + test_linear_range 'd e' b..
> + "
> + }
> +-test_run_rebase success ''
> ++test_run_rebase success --am
> + test_run_rebase success --fork-point
> + test_run_rebase success -m
> + test_run_rebase success -i
> +@@
> + test_linear_range 'd e' branch-b..
> + "
> + }
> +-test_run_rebase success ''
> ++test_run_rebase success --am
> + test_run_rebase success --fork-point
> + test_run_rebase success -m
> + test_run_rebase success -i
> +@@
> + test_cmp_rev e HEAD
> + "
> + }
> +-test_run_rebase success ''
> ++test_run_rebase success --am
> + test_run_rebase success --fork-point
> + test_run_rebase success -m
> + test_run_rebase success -i
> +@@
> + test_linear_range 'd i' h..
> + "
> + }
> +-test_run_rebase success ''
> ++test_run_rebase success --am
> + test_run_rebase success -m
> + test_run_rebase success -i
> + test_have_prereq !REBASE_P || test_run_rebase success -p
> +@@
> + test_linear_range 'd' h..
> + "
> + }
> +-test_run_rebase success ''
> ++test_run_rebase success --am
> + test_run_rebase success -m
> + test_run_rebase success -i
> + test_have_prereq !REBASE_P || test_run_rebase success -p
> +@@
> + test_linear_range 'd i' f..
> + "
> + }
> +-test_run_rebase success ''
> ++test_run_rebase success --am
> + test_run_rebase success -m
> + test_run_rebase success -i
> + test_have_prereq !REBASE_P || test_run_rebase success -p
> +@@
> + test_linear_range 'd gp i' h..
> + "
> + }
> +-test_run_rebase success ''
> ++test_run_rebase success --am
> + test_run_rebase success -m
> + test_run_rebase success -i
> + test_have_prereq !REBASE_P || test_run_rebase success -p
> +@@
> + test_linear_range 'j d k l' c..
> + "
> + }
> +-test_run_rebase failure ''
> ++test_run_rebase failure --am
> + test_run_rebase success -m
> + test_run_rebase success -i
> + test_have_prereq !REBASE_P || test_run_rebase failure -p
> +@@
> + test_linear_range 'd k l' c..
> + "
> + }
> +-test_run_rebase success ''
> ++test_run_rebase success --am
> + test_run_rebase success -m
> + test_run_rebase success -i
> + test_have_prereq !REBASE_P || test_run_rebase success -p
> +@@
> + test_linear_range 'd k l' j..
> + "
> + }
> +-test_run_rebase success ''
> ++test_run_rebase success --am
> + test_run_rebase success -m
> + test_run_rebase success -i
> + test_have_prereq !REBASE_P || test_run_rebase success -p
> +@@
> + test_linear_range 'x y' c..
> + "
> + }
> +-test_run_rebase success ''
> ++test_run_rebase success --am
> + test_run_rebase success -m
> + test_run_rebase success -i
> + test_have_prereq !REBASE_P || test_run_rebase success -p
> +@@
> + test_linear_range 'x y' c..
> + "
> + }
> +-test_run_rebase success ''
> ++test_run_rebase success --am
> + test_run_rebase success -m
> + test_run_rebase success -i
> + test_have_prereq !REBASE_P || test_run_rebase failure -p
> +@@
> + test_linear_range 'x y' m..
> + "
> + }
> +-test_run_rebase success ''
> ++test_run_rebase success --am
> + test_run_rebase success -m
> + test_run_rebase success -i
> + test_have_prereq !REBASE_P || test_run_rebase success -p
> +@@
> + "
> + }
> +
> +-test_run_rebase success ''
> ++test_run_rebase success --am
> + test_run_rebase success -m
> + test_run_rebase success -i
> + test_have_prereq !REBASE_P || test_run_rebase failure -p
> +@@
> + test_linear_range 'x y' m..
> + "
> + }
> +-test_run_rebase success ''
> ++test_run_rebase success --am
> + test_run_rebase success -m
> + test_run_rebase success -i
> + test_have_prereq !REBASE_P || test_run_rebase failure -p
> +
> diff --git a/t/t3425-rebase-topology-merges.sh b/t/t3425-rebase-topology-merges.sh
> --- a/t/t3425-rebase-topology-merges.sh
> +++ b/t/t3425-rebase-topology-merges.sh
> 17: 1e3d4066c40 = 17: dc12574a8b3 rebase tests: repeat some tests using the merge backend instead of am
> 18: 9b4ac83d2d0 = 18: ba1f2699b39 rebase: make the backend configurable via config setting
> 19: 859a4a94d7f ! 19: 59faaa2f920 rebase: change the default backend from "am" to "merge"
> @@ -13,6 +13,7 @@
> patches incorrectly.[2]
> * lack of access to original commits means that conflict marker
> annotation has less information available.
> + * the am backend has safety problems with an ill-timed interrupt.
>
> Also, the merge/interactive backend have far more abilities, appear to
> currently have a slight performance advantage[3] and have room for more
> @@ -38,6 +39,24 @@
> +
> Note that a rebase merge works by replaying each commit from the working
> branch on top of the <upstream> branch. Because of this, when a merge
> +@@
> + should have the same behavior, though it is not clear which one is
> + correct.
> +
> ++Interruptability
> ++~~~~~~~~~~~~~~~~
> ++
> ++The am backend has safety problems with an ill-timed interrupt; if the
> ++user presses Ctrl-C at the wrong time to try to abort the rebase, the
> ++rebase can enter a state where it cannot be aborted with a subsequent
> ++`git rebase --abort`. The interactive backend does not appear to
> ++suffer from the same shortcoming. (See
> ++https://lore.kernel.org/git/20200207132152.GC2868@szeder.dev/ for
> ++details.)
> ++
> + Miscellaneous differences
> + ~~~~~~~~~~~~~~~~~~~~~~~~~
> +
>
> diff --git a/builtin/rebase.c b/builtin/rebase.c
> --- a/builtin/rebase.c
> -: ----------- > 20: ad8339aebf2 rebase: rename the two primary rebase backends
>
prev parent reply other threads:[~2020-02-16 15:01 UTC|newest]
Thread overview: 161+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-20 17:09 [PATCH 00/15] rebase: make the default backend configurable Elijah Newren via GitGitGadget
2019-12-20 17:09 ` [PATCH 01/15] rebase: extend the options for handling of empty commits Elijah Newren via GitGitGadget
2019-12-20 21:29 ` Junio C Hamano
2019-12-21 0:32 ` Elijah Newren
2019-12-21 18:52 ` Elijah Newren
2019-12-21 23:49 ` Junio C Hamano
2019-12-20 17:09 ` [PATCH 02/15] t3406: simplify an already simple test Elijah Newren via GitGitGadget
2019-12-20 17:09 ` [PATCH 03/15] rebase, sequencer: remove the broken GIT_QUIET handling Elijah Newren via GitGitGadget
2019-12-20 21:34 ` Junio C Hamano
2019-12-20 17:09 ` [PATCH 04/15] rebase: make sure to pass along the quiet flag to the sequencer Elijah Newren via GitGitGadget
2019-12-20 17:09 ` [PATCH 05/15] rebase: fix handling of restrict_revision Elijah Newren via GitGitGadget
2019-12-20 21:37 ` Junio C Hamano
2019-12-20 17:09 ` [PATCH 06/15] t3432: make these tests work with either am or merge backends Elijah Newren via GitGitGadget
2019-12-22 5:11 ` Denton Liu
2019-12-23 17:17 ` Elijah Newren
2019-12-20 17:09 ` [PATCH 07/15] rebase: allow more types of rebases to fast-forward Elijah Newren via GitGitGadget
2019-12-20 17:09 ` [PATCH 08/15] git-rebase.txt: add more details about behavioral differences of backends Elijah Newren via GitGitGadget
2019-12-20 17:09 ` [PATCH 09/15] rebase: move incompatibility checks between backend options a bit earlier Elijah Newren via GitGitGadget
2019-12-20 17:09 ` [PATCH 10/15] rebase: add an --am option Elijah Newren via GitGitGadget
2019-12-20 17:09 ` [PATCH 11/15] contrib: change the prompt for am-based rebases Elijah Newren via GitGitGadget
2019-12-20 23:07 ` SZEDER Gábor
2019-12-21 0:17 ` Elijah Newren
2019-12-20 17:09 ` [PATCH 12/15] rebase tests: mark tests specific to the am-backend with --am Elijah Newren via GitGitGadget
2019-12-20 17:09 ` [PATCH 13/15] rebase tests: repeat some tests using the merge backend instead of am Elijah Newren via GitGitGadget
2019-12-20 17:09 ` [PATCH 14/15] rebase: make the backend configurable via config setting Elijah Newren via GitGitGadget
2019-12-20 17:09 ` [PATCH 15/15] rebase: change the default backend from "am" to "merge" Elijah Newren via GitGitGadget
2019-12-20 18:51 ` [PATCH 00/15] rebase: make the default backend configurable Alban Gruin
2019-12-20 18:55 ` Elijah Newren
2019-12-23 18:49 ` [PATCH v2 " Elijah Newren via GitGitGadget
2019-12-23 18:49 ` [PATCH v2 01/15] rebase: extend the options for handling of empty commits Elijah Newren via GitGitGadget
2019-12-23 18:49 ` [PATCH v2 02/15] t3406: simplify an already simple test Elijah Newren via GitGitGadget
2019-12-23 18:49 ` [PATCH v2 03/15] rebase, sequencer: remove the broken GIT_QUIET handling Elijah Newren via GitGitGadget
2019-12-23 18:49 ` [PATCH v2 04/15] rebase: make sure to pass along the quiet flag to the sequencer Elijah Newren via GitGitGadget
2019-12-23 18:49 ` [PATCH v2 05/15] rebase: fix handling of restrict_revision Elijah Newren via GitGitGadget
2019-12-23 18:49 ` [PATCH v2 06/15] t3432: make these tests work with either am or merge backends Elijah Newren via GitGitGadget
2019-12-23 18:49 ` [PATCH v2 07/15] rebase: allow more types of rebases to fast-forward Elijah Newren via GitGitGadget
2019-12-23 18:49 ` [PATCH v2 08/15] git-rebase.txt: add more details about behavioral differences of backends Elijah Newren via GitGitGadget
2019-12-23 18:49 ` [PATCH v2 09/15] rebase: move incompatibility checks between backend options a bit earlier Elijah Newren via GitGitGadget
2019-12-23 18:49 ` [PATCH v2 10/15] rebase: add an --am option Elijah Newren via GitGitGadget
2019-12-23 18:49 ` [PATCH v2 11/15] contrib: change the prompt for interactive-based rebases Elijah Newren via GitGitGadget
2019-12-23 22:00 ` Denton Liu
2019-12-23 18:49 ` [PATCH v2 12/15] rebase tests: mark tests specific to the am-backend with --am Elijah Newren via GitGitGadget
2019-12-23 18:49 ` [PATCH v2 13/15] rebase tests: repeat some tests using the merge backend instead of am Elijah Newren via GitGitGadget
2019-12-23 18:49 ` [PATCH v2 14/15] rebase: make the backend configurable via config setting Elijah Newren via GitGitGadget
2019-12-23 18:49 ` [PATCH v2 15/15] rebase: change the default backend from "am" to "merge" Elijah Newren via GitGitGadget
2019-12-24 19:54 ` [PATCH v3 00/15] rebase: make the default backend configurable Elijah Newren via GitGitGadget
2019-12-24 19:54 ` [PATCH v3 01/15] rebase: extend the options for handling of empty commits Elijah Newren via GitGitGadget
2020-01-07 14:37 ` Phillip Wood
2020-01-07 19:15 ` Elijah Newren
2020-01-08 14:27 ` Phillip Wood
2020-01-09 21:32 ` Johannes Schindelin
2019-12-24 19:54 ` [PATCH v3 02/15] t3406: simplify an already simple test Elijah Newren via GitGitGadget
2019-12-24 19:54 ` [PATCH v3 03/15] rebase, sequencer: remove the broken GIT_QUIET handling Elijah Newren via GitGitGadget
2019-12-24 19:54 ` [PATCH v3 04/15] rebase: make sure to pass along the quiet flag to the sequencer Elijah Newren via GitGitGadget
2019-12-24 19:54 ` [PATCH v3 05/15] rebase: fix handling of restrict_revision Elijah Newren via GitGitGadget
2019-12-24 19:54 ` [PATCH v3 06/15] t3432: make these tests work with either am or merge backends Elijah Newren via GitGitGadget
2019-12-24 19:54 ` [PATCH v3 07/15] rebase: allow more types of rebases to fast-forward Elijah Newren via GitGitGadget
2019-12-24 19:54 ` [PATCH v3 08/15] git-rebase.txt: add more details about behavioral differences of backends Elijah Newren via GitGitGadget
2019-12-24 19:54 ` [PATCH v3 09/15] rebase: move incompatibility checks between backend options a bit earlier Elijah Newren via GitGitGadget
2019-12-24 19:54 ` [PATCH v3 10/15] rebase: add an --am option Elijah Newren via GitGitGadget
2020-01-07 14:43 ` Phillip Wood
2020-01-07 19:26 ` Elijah Newren
2020-01-07 20:11 ` Junio C Hamano
2020-01-08 14:32 ` Phillip Wood
2020-01-08 17:18 ` Junio C Hamano
2020-01-08 18:55 ` Phillip Wood
2019-12-24 19:54 ` [PATCH v3 11/15] git-prompt: change the prompt for interactive-based rebases Elijah Newren via GitGitGadget
2019-12-24 19:54 ` [PATCH v3 12/15] rebase tests: mark tests specific to the am-backend with --am Elijah Newren via GitGitGadget
2019-12-24 19:54 ` [PATCH v3 13/15] rebase tests: repeat some tests using the merge backend instead of am Elijah Newren via GitGitGadget
2019-12-24 19:54 ` [PATCH v3 14/15] rebase: make the backend configurable via config setting Elijah Newren via GitGitGadget
2019-12-24 19:54 ` [PATCH v3 15/15] rebase: change the default backend from "am" to "merge" Elijah Newren via GitGitGadget
2020-01-10 23:14 ` Jonathan Nieder
2020-01-11 1:16 ` Elijah Newren
2020-01-11 14:41 ` Phillip Wood
2020-01-12 17:59 ` Johannes Schindelin
2020-01-16 6:32 ` Elijah Newren
2020-01-16 7:58 ` Jonathan Nieder
2020-01-16 8:06 ` Jonathan Nieder
2020-01-16 16:18 ` Elijah Newren
2020-01-16 20:35 ` Jonathan Nieder
2020-01-16 21:30 ` Elijah Newren
2020-01-16 22:39 ` Jonathan Nieder
2020-01-16 23:19 ` Elijah Newren
2020-01-16 23:25 ` Junio C Hamano
2020-01-17 0:51 ` Elijah Newren
2020-01-16 15:35 ` Elijah Newren
2020-01-16 20:05 ` Junio C Hamano
2020-01-16 10:48 ` Johannes Schindelin
2020-01-12 21:23 ` Junio C Hamano
2020-01-15 19:50 ` Jonathan Nieder
2020-01-15 21:59 ` Emily Shaffer
2020-01-16 6:14 ` [PATCH v4 00/19] rebase: make the default backend configurable Elijah Newren via GitGitGadget
2020-01-16 6:14 ` [PATCH v4 01/19] git-rebase.txt: update description of --allow-empty-message Elijah Newren via GitGitGadget
2020-02-09 15:59 ` Phillip Wood
2020-02-13 18:35 ` Elijah Newren
2020-01-16 6:14 ` [PATCH v4 02/19] t3404: directly test the behavior of interest Elijah Newren via GitGitGadget
2020-01-16 6:14 ` [PATCH v4 03/19] rebase (interactive-backend): make --keep-empty the default Elijah Newren via GitGitGadget
2020-02-09 15:59 ` Phillip Wood
2020-02-13 18:52 ` Elijah Newren
2020-01-16 6:14 ` [PATCH v4 04/19] rebase (interactive-backend): fix handling of commits that become empty Elijah Newren via GitGitGadget
2020-02-10 14:27 ` Phillip Wood
2020-02-13 18:54 ` Elijah Newren
2020-02-16 14:46 ` Phillip Wood
2020-01-16 6:14 ` [PATCH v4 05/19] t3406: simplify an already simple test Elijah Newren via GitGitGadget
2020-01-16 6:14 ` [PATCH v4 06/19] rebase, sequencer: remove the broken GIT_QUIET handling Elijah Newren via GitGitGadget
2020-01-16 6:14 ` [PATCH v4 07/19] rebase: make sure to pass along the quiet flag to the sequencer Elijah Newren via GitGitGadget
2020-01-16 6:14 ` [PATCH v4 08/19] rebase: fix handling of restrict_revision Elijah Newren via GitGitGadget
2020-01-16 6:14 ` [PATCH v4 09/19] t3432: make these tests work with either am or merge backends Elijah Newren via GitGitGadget
2020-01-16 6:14 ` [PATCH v4 10/19] rebase: allow more types of rebases to fast-forward Elijah Newren via GitGitGadget
2020-01-16 6:14 ` [PATCH v4 11/19] git-rebase.txt: add more details about behavioral differences of backends Elijah Newren via GitGitGadget
2020-01-16 6:14 ` [PATCH v4 12/19] rebase: move incompatibility checks between backend options a bit earlier Elijah Newren via GitGitGadget
2020-01-16 6:14 ` [PATCH v4 13/19] rebase: add an --am option Elijah Newren via GitGitGadget
2020-01-16 6:14 ` [PATCH v4 14/19] git-prompt: change the prompt for interactive-based rebases Elijah Newren via GitGitGadget
2020-01-16 6:14 ` [PATCH v4 15/19] rebase: drop '-i' from the reflog " Elijah Newren via GitGitGadget
2020-01-16 6:14 ` [PATCH v4 16/19] rebase tests: mark tests specific to the am-backend with --am Elijah Newren via GitGitGadget
2020-01-16 6:14 ` [PATCH v4 17/19] rebase tests: repeat some tests using the merge backend instead of am Elijah Newren via GitGitGadget
2020-01-16 6:14 ` [PATCH v4 18/19] rebase: make the backend configurable via config setting Elijah Newren via GitGitGadget
2020-01-16 6:14 ` [PATCH v4 19/19] rebase: change the default backend from "am" to "merge" Elijah Newren via GitGitGadget
2020-01-17 16:58 ` [PATCH v4 00/19] rebase: make the default backend configurable Phillip Wood
2020-02-05 21:06 ` Junio C Hamano
2020-02-05 22:38 ` Elijah Newren
2020-02-15 21:36 ` [PATCH v5 00/20] rebase: make the default backend configurable and change the default Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 01/20] git-rebase.txt: update description of --allow-empty-message Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 02/20] t3404: directly test the behavior of interest Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 03/20] rebase (interactive-backend): make --keep-empty the default Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 04/20] rebase (interactive-backend): fix handling of commits that become empty Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 05/20] t3406: simplify an already simple test Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 06/20] rebase, sequencer: remove the broken GIT_QUIET handling Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 07/20] rebase: make sure to pass along the quiet flag to the sequencer Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 08/20] rebase: fix handling of restrict_revision Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 09/20] t3432: make these tests work with either am or merge backends Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 10/20] rebase: allow more types of rebases to fast-forward Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 11/20] git-rebase.txt: add more details about behavioral differences of backends Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 12/20] rebase: move incompatibility checks between backend options a bit earlier Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 13/20] rebase: add an --am option Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 14/20] git-prompt: change the prompt for interactive-based rebases Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 15/20] rebase: drop '-i' from the reflog " Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 16/20] rebase tests: mark tests specific to the am-backend with --am Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 17/20] rebase tests: repeat some tests using the merge backend instead of am Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 18/20] rebase: make the backend configurable via config setting Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 19/20] rebase: change the default backend from "am" to "merge" Elijah Newren via GitGitGadget
2020-02-15 21:36 ` [PATCH v5 20/20] rebase: rename the two primary rebase backends Elijah Newren via GitGitGadget
2020-03-12 15:13 ` Emily Shaffer
2020-03-12 16:33 ` Elijah Newren
2020-03-12 17:55 ` Jonathan Nieder
2020-03-12 18:39 ` Elijah Newren
2020-03-12 18:46 ` Jonathan Nieder
2020-03-12 19:31 ` Elijah Newren
2020-03-17 2:58 ` Jonathan Nieder
2020-03-17 4:45 ` Elijah Newren
2020-03-12 19:54 ` Junio C Hamano
2020-03-12 19:07 ` Junio C Hamano
2020-03-12 19:12 ` Jonathan Nieder
2020-03-12 19:12 ` Junio C Hamano
2020-03-12 19:29 ` Elijah Newren
2020-03-12 20:37 ` Jeff King
2020-03-12 21:27 ` Junio C Hamano
2020-03-12 22:06 ` Elijah Newren
2020-03-13 0:04 ` Junio C Hamano
2020-03-12 23:30 ` Jonathan Nieder
2020-02-16 15:01 ` Phillip Wood [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e2863381-174c-a55c-bb22-0c7aec9cabf4@gmail.com \
--to=phillip.wood123@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=alban.gruin@gmail.com \
--cc=emilyshaffer@google.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.com \
--cc=liu.denton@gmail.com \
--cc=newren@gmail.com \
--cc=phillip.wood@dunelm.org.uk \
--cc=plroskin@gmail.com \
--cc=szeder.dev@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).