From: Jeff King Date: Fri, 23 Oct 2020 07:10:15 +0000 (-0400) Subject: rebase: fix broken email with --committer-date-is-author-date X-Git-Tag: v2.29.2~2^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5f35edd9d7ebca17f205b338d340cc6ce214644a;p=thirdparty%2Fgit.git rebase: fix broken email with --committer-date-is-author-date Commit 7573cec52c (rebase -i: support --committer-date-is-author-date, 2020-08-17) copied the committer ident-parsing code from builtin/am.c. And in doing so, it copied a bug in which we always set the email to an empty string. We fixed the version in git-am in the previous commit; this commit fixes the copied code. Reported-by: VenomVendor Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- diff --git a/sequencer.c b/sequencer.c index 4ccb5451a9..9dcd3db3ef 100644 --- a/sequencer.c +++ b/sequencer.c @@ -4369,7 +4369,7 @@ static int init_committer(struct replay_opts *opts) opts->committer_name = xmemdupz(id.name_begin, id.name_end - id.name_begin); opts->committer_email = - xmemdupz(id.mail_begin, id.mail_end - id.mail_end); + xmemdupz(id.mail_begin, id.mail_end - id.mail_begin); return 0; } diff --git a/t/t3436-rebase-more-options.sh b/t/t3436-rebase-more-options.sh index 3fda2235bd..eaaf4c8d1d 100755 --- a/t/t3436-rebase-more-options.sh +++ b/t/t3436-rebase-more-options.sh @@ -76,20 +76,20 @@ test_expect_success '--committer-date-is-author-date works with apply backend' ' test_ctime_is_atime -1 ' -test_expect_failure '--committer-date-is-author-date works with merge backend' ' +test_expect_success '--committer-date-is-author-date works with merge backend' ' GIT_AUTHOR_DATE="@1234 +0300" git commit --amend --reset-author && git rebase -m --committer-date-is-author-date HEAD^ && test_ctime_is_atime -1 ' -test_expect_failure '--committer-date-is-author-date works with rebase -r' ' +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 && git rebase -r --root --committer-date-is-author-date && test_ctime_is_atime ' -test_expect_failure '--committer-date-is-author-date works when forking merge' ' +test_expect_success '--committer-date-is-author-date works when forking merge' ' git checkout side && GIT_AUTHOR_DATE="@1234 +0300" git merge --no-ff commit3 && PATH="./test-bin:$PATH" git rebase -r --root --strategy=test \ @@ -145,7 +145,7 @@ test_expect_success '--reset-author-date works with rebase -r' ' test_atime_is_ignored ' -test_expect_failure '--reset-author-date with --committer-date-is-author-date works' ' +test_expect_success '--reset-author-date with --committer-date-is-author-date works' ' test_must_fail git rebase -m --committer-date-is-author-date \ --reset-author-date --onto commit2^^ commit2^ commit3 && git checkout --theirs foo &&