From: "Elijah Newren via GitGitGadget" <gitgitgadget@gmail.com>
To: 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,
Junio C Hamano <gitster@pobox.com>
Subject: [PATCH v3 00/15] rebase: make the default backend configurable
Date: Tue, 24 Dec 2019 19:54:44 +0000 [thread overview]
Message-ID: <pull.679.v3.git.git.1577217299.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.679.v2.git.git.1577126999.gitgitgadget@gmail.com>
This series does a lot of work around making the default rebase backend
configurable, and switching the default from the am backend to the
merge/interactive one.
See the cover letter for v1[*] for a more detailed motivation for the
series, the type of changes being made, and areas I'd like to reviewers to
focus on.
Changes since v2:
* Tweaked patch 11 (commit message, and condensing if-else block that was
same on both sides), as suggested by Denton
[*]
https://lore.kernel.org/git/pull.679.git.git.1576861788.gitgitgadget@gmail.com/
Elijah Newren (15):
rebase: extend the options for handling of empty commits
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 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"
Documentation/config/rebase.txt | 8 ++
Documentation/git-rebase.txt | 150 ++++++++++++++++----
builtin/rebase.c | 177 +++++++++++++++++++-----
contrib/completion/git-prompt.sh | 6 +-
rebase-interactive.c | 4 +-
rebase-interactive.h | 2 +-
sequencer.c | 80 ++++++++---
sequencer.h | 6 +-
t/t3400-rebase.sh | 36 ++++-
t/t3401-rebase-and-am-rename.sh | 4 +-
t/t3404-rebase-interactive.sh | 2 +-
t/t3406-rebase-message.sh | 19 ++-
t/t3407-rebase-abort.sh | 6 +-
t/t3420-rebase-autostash.sh | 2 +-
t/t3421-rebase-topology-linear.sh | 4 +-
t/t3424-rebase-empty.sh | 89 ++++++++++++
t/t3425-rebase-topology-merges.sh | 8 +-
t/t3427-rebase-subtree.sh | 16 ++-
t/t3432-rebase-fast-forward.sh | 54 ++++----
t/t3433-rebase-options-compatibility.sh | 13 +-
t/t5407-post-rewrite-hook.sh | 12 +-
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 +-
26 files changed, 576 insertions(+), 185 deletions(-)
create mode 100755 t/t3424-rebase-empty.sh
base-commit: 12029dc57db23baef008e77db1909367599210ee
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-679%2Fnewren%2Frebase-fixes-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-679/newren/rebase-fixes-v3
Pull-Request: https://github.com/git/git/pull/679
Range-diff vs v2:
1: 1c2b77e94d = 1: 1c2b77e94d rebase: extend the options for handling of empty commits
2: bd3c5ec155 = 2: bd3c5ec155 t3406: simplify an already simple test
3: 49388b79fd = 3: 49388b79fd rebase, sequencer: remove the broken GIT_QUIET handling
4: 478479358f = 4: 478479358f rebase: make sure to pass along the quiet flag to the sequencer
5: ee26f5a161 = 5: ee26f5a161 rebase: fix handling of restrict_revision
6: 34a69def33 = 6: 34a69def33 t3432: make these tests work with either am or merge backends
7: f2c92853b4 = 7: f2c92853b4 rebase: allow more types of rebases to fast-forward
8: b307340f7c = 8: b307340f7c git-rebase.txt: add more details about behavioral differences of backends
9: 7c3f2e07f3 = 9: 7c3f2e07f3 rebase: move incompatibility checks between backend options a bit earlier
10: 1df11f0b51 = 10: 1df11f0b51 rebase: add an --am option
11: 94b5a3051d ! 11: ff43593211 contrib: change the prompt for interactive-based rebases
@@ -1,6 +1,6 @@
Author: Elijah Newren <newren@gmail.com>
- contrib: change the prompt for interactive-based rebases
+ git-prompt: change the prompt for interactive-based rebases
In the past, we had different prompts for different types of rebases:
REBASE: for am-based rebases
@@ -40,17 +40,18 @@
--- a/contrib/completion/git-prompt.sh
+++ b/contrib/completion/git-prompt.sh
@@
+ __git_eread "$g/rebase-merge/head-name" b
__git_eread "$g/rebase-merge/msgnum" step
__git_eread "$g/rebase-merge/end" total
- if [ -f "$g/rebase-merge/interactive" ]; then
+- if [ -f "$g/rebase-merge/interactive" ]; then
- r="|REBASE-i"
-+ r="|REBASE"
- else
+- else
- r="|REBASE-m"
-+ r="|REBASE"
- fi
+- fi
++ r="|REBASE"
else
if [ -d "$g/rebase-apply" ]; then
+ __git_eread "$g/rebase-apply/next" step
diff --git a/t/t9903-bash-prompt.sh b/t/t9903-bash-prompt.sh
--- a/t/t9903-bash-prompt.sh
12: c905d288bf = 12: 99388f24e5 rebase tests: mark tests specific to the am-backend with --am
13: 0287881361 = 13: c2ba6317bf rebase tests: repeat some tests using the merge backend instead of am
14: ec782e711c = 14: 8bec6df51a rebase: make the backend configurable via config setting
15: 7adcbc0bc5 = 15: 044853fd61 rebase: change the default backend from "am" to "merge"
--
gitgitgadget
next prev parent reply other threads:[~2019-12-24 19:55 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 ` Elijah Newren via GitGitGadget [this message]
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 ` [PATCH v5 00/20] rebase: make the default backend configurable and change the default Phillip Wood
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.679.v3.git.git.1577217299.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=alban.gruin@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=liu.denton@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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).