]> git.ipfire.org Git - thirdparty/git.git/commitdiff
rebase: fix broken email with --committer-date-is-author-date
authorJeff King <peff@peff.net>
Fri, 23 Oct 2020 07:10:15 +0000 (03:10 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 23 Oct 2020 15:25:22 +0000 (08:25 -0700)
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 <info@venomvendor.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
sequencer.c
t/t3436-rebase-more-options.sh

index 4ccb5451a9815da6df2d8222e46651d7f0f557ef..9dcd3db3ef9e453b76c317f1991cb44633eda285 100644 (file)
@@ -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;
 }
index 3fda2235bdca31d288e8bdc145473398f44ef574..eaaf4c8d1d8c34a0ce9b2c8e92d0341a4074938b 100755 (executable)
@@ -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 &&