diff options
author | Junio C Hamano <gitster@pobox.com> | 2021-11-03 20:32:28 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-11-03 20:32:29 (GMT) |
commit | 0cb1330bc6e71d5e489e98a596ffbc7a3fa36b18 (patch) | |
tree | 79b55b063e4056573d98010291f05381b984f899 | |
parent | 36f0a2e20f3eeeaef8c356a4c9d27c3a5a5e13d0 (diff) | |
parent | 9d6b9df128f842d2945e20e0760489ec6f3d2c0c (diff) | |
download | git-0cb1330bc6e71d5e489e98a596ffbc7a3fa36b18.zip git-0cb1330bc6e71d5e489e98a596ffbc7a3fa36b18.tar.gz git-0cb1330bc6e71d5e489e98a596ffbc7a3fa36b18.tar.bz2 |
Merge branch 'pw/rebase-r-fixes'
Regression fix.
* pw/rebase-r-fixes:
rebase -i: fix rewording with --committer-date-is-author-date
-rw-r--r-- | sequencer.c | 4 | ||||
-rwxr-xr-x | t/t3436-rebase-more-options.sh | 29 |
2 files changed, 32 insertions, 1 deletions
diff --git a/sequencer.c b/sequencer.c index cd2aabf..ea96837 100644 --- a/sequencer.c +++ b/sequencer.c @@ -997,7 +997,9 @@ static int run_git_commit(const char *defmsg, cmd.git_cmd = 1; - if (is_rebase_i(opts) && !(!defmsg && (flags & AMEND_MSG)) && + if (is_rebase_i(opts) && + ((opts->committer_date_is_author_date && !opts->ignore_date) || + !(!defmsg && (flags & AMEND_MSG))) && read_env_script(&cmd.env_array)) { const char *gpg_opt = gpg_sign_opt_quoted(opts); diff --git a/t/t3436-rebase-more-options.sh b/t/t3436-rebase-more-options.sh index 4d10664..94671d3 100755 --- a/t/t3436-rebase-more-options.sh +++ b/t/t3436-rebase-more-options.sh @@ -82,6 +82,20 @@ test_expect_success '--committer-date-is-author-date works with merge backend' ' test_ctime_is_atime -1 ' +test_expect_success '--committer-date-is-author-date works when rewording' ' + GIT_AUTHOR_DATE="@1234 +0300" git commit --amend --reset-author && + ( + set_fake_editor && + FAKE_COMMIT_MESSAGE=edited \ + FAKE_LINES="reword 1" \ + git rebase -i --committer-date-is-author-date HEAD^ + ) && + test_write_lines edited "" >expect && + git log --format="%B" -1 >actual && + test_cmp expect actual && + test_ctime_is_atime -1 +' + test_expect_success '--committer-date-is-author-date works with rebase -r' ' git checkout side && GIT_AUTHOR_DATE="@1234 +0300" git merge --no-ff commit3 && @@ -155,6 +169,21 @@ test_expect_success '--reset-author-date with --committer-date-is-author-date wo test_atime_is_ignored -2 ' +test_expect_success 'reset-author-date with --committer-date-is-author-date works when rewording' ' + GIT_AUTHOR_DATE="@1234 +0300" git commit --amend --reset-author && + ( + set_fake_editor && + FAKE_COMMIT_MESSAGE=edited \ + FAKE_LINES="reword 1" \ + git rebase -i --committer-date-is-author-date \ + --reset-author-date HEAD^ + ) && + test_write_lines edited "" >expect && + git log --format="%B" -1 >actual && + test_cmp expect actual && + test_atime_is_ignored -1 +' + test_expect_success '--reset-author-date --committer-date-is-author-date works when forking merge' ' GIT_SEQUENCE_EDITOR="echo \"merge -C $(git rev-parse HEAD) commit3\">" \ PATH="./test-bin:$PATH" git rebase -i --strategy=test \ |