Hi Elijah
On 17/06/18 06:58, Elijah Newren wrote:
am-based rebases already apply commits with an empty commit message
without requiring the user to specify an extra flag. Make merge-based and
interactive-based rebases behave the same.
Signed-off-by: Elijah Newren <newren@xxxxxxxxx>
---
Documentation/git-rebase.txt | 10 ----------
git-rebase.sh | 2 +-
t/t3404-rebase-interactive.sh | 7 ++++---
t/t3405-rebase-malformed.sh | 11 +++--------
4 files changed, 8 insertions(+), 22 deletions(-)
diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
index 7a2ed9efdc..a5608f481f 100644
--- a/Documentation/git-rebase.txt
+++ b/Documentation/git-rebase.txt
@@ -562,16 +562,6 @@ BEHAVIORAL INCONSISTENCIES
The --keep-empty option exists for interactive rebases to allow
it to keep commits that started empty.
- * empty commit messages:
-
- am-based rebase will silently apply commits with empty commit
- messages.
-
- merge-based and interactive-based rebases will by default halt
- on any such commits. The --allow-empty-message option exists to
- allow interactive-based rebases to apply such commits without
- halting.
-
* directory rename detection:
merge-based and interactive-based rebases work fine with
diff --git a/git-rebase.sh b/git-rebase.sh
index 5f891214fa..bf033da4e5 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -95,7 +95,7 @@ rebase_cousins=
preserve_merges=
autosquash=
keep_empty=
-allow_empty_message=
+allow_empty_message=--allow-empty-message
Looking at the option parsing in git-rebase.sh it appears that it does
not check for --no-allow-empty-message so there's no way to turn off the
default for those modes that support it. I'm not sure what to think of
this change, I'm slightly uneasy with changing to default to be
different from cherry-pick, though one could argue rebasing is a
different operation and just keeping the existing messages even if they
are empty is more appropriate and having all the rebase modes do the
default to the same behaviour is definitely an improvement.
Best Wishes
Phillip
signoff=
test "$(git config --bool rebase.autosquash)" = "true" && autosquash=t
case "$(git config --bool commit.gpgsign)" in
diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh
index c65826ddac..f84fa63b15 100755
--- a/t/t3404-rebase-interactive.sh
+++ b/t/t3404-rebase-interactive.sh
@@ -553,15 +553,16 @@ test_expect_success '--continue tries to commit, even for "edit"' '
'
test_expect_success 'aborted --continue does not squash commits after "edit"' '
+ test_when_finished "git rebase --abort" &&
old=$(git rev-parse HEAD) &&
test_tick &&
set_fake_editor &&
FAKE_LINES="edit 1" git rebase -i HEAD^ &&
echo "edited again" > file7 &&
git add file7 &&
- test_must_fail env FAKE_COMMIT_MESSAGE=" " git rebase --continue &&
- test $old = $(git rev-parse HEAD) &&
- git rebase --abort
+ echo all the things >>conflict &&
+ test_must_fail git rebase --continue &&
+ test $old = $(git rev-parse HEAD)
'
test_expect_success 'auto-amend only edited commits after "edit"' '
diff --git a/t/t3405-rebase-malformed.sh b/t/t3405-rebase-malformed.sh
index cb7c6de84a..da94dddc86 100755
--- a/t/t3405-rebase-malformed.sh
+++ b/t/t3405-rebase-malformed.sh
@@ -77,19 +77,14 @@ test_expect_success 'rebase commit with diff in message' '
'
test_expect_success 'rebase -m commit with empty message' '
- test_must_fail git rebase -m master empty-message-merge &&
- git rebase --abort &&
- git rebase -m --allow-empty-message master empty-message-merge
+ git rebase -m master empty-message-merge
'
test_expect_success 'rebase -i commit with empty message' '
git checkout diff-in-message &&
set_fake_editor &&
- test_must_fail env FAKE_COMMIT_MESSAGE=" " FAKE_LINES="reword 1" \
- git rebase -i HEAD^ &&
- git rebase --abort &&
- FAKE_COMMIT_MESSAGE=" " FAKE_LINES="reword 1" \
- git rebase -i --allow-empty-message HEAD^
+ env FAKE_COMMIT_MESSAGE=" " FAKE_LINES="reword 1" \
+ git rebase -i HEAD^
'
test_done