t3436: check --committer-date-is-author-date result more carefully
After running "rebase --committer-date-is-author-date", we confirm that the committer date is the same as the author date. However, we don't look at any other parts of the committer ident line to make sure we didn't screw them up. And indeed, there are a few bugs here. Depending on the rebase backend in use, we may accidentally use the author email instead of the committer's, or even an empty string. Let's teach our test_ctime_is_atime helper to check the committer name and email, which reveals several failing tests. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King committed
Oct 23, 2020 at 03:08 UTC
56706dba33f5d4457395c651cf1cd033c6c03c7a
1 file changed
+7
-7
t/t3436-rebase-more-options.sh
+7
-7
@@ -65,31 +65,31 @@ test_expect_success '--ignore-whitespace is remembered when continuing' '
65
'
66
67
test_ctime_is_atime () {
68
- git log $1 --format=%ai >authortime &&
69
- git log $1 --format=%ci >committertime &&
68
+ git log $1 --format="$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> %ai" >authortime &&
69
+ git log $1 --format="%cn <%ce> %ci" >committertime &&
70
test_cmp authortime committertime
71
}
72
73
-test_expect_success '--committer-date-is-author-date works with apply backend' '
73
+test_expect_failure '--committer-date-is-author-date works with apply backend' '
74
GIT_AUTHOR_DATE="@1234 +0300" git commit --amend --reset-author &&
75
git rebase --apply --committer-date-is-author-date HEAD^ &&
76
test_ctime_is_atime -1
77
'
78
79
-test_expect_success '--committer-date-is-author-date works with merge backend' '
79
+test_expect_failure '--committer-date-is-author-date works with merge backend' '
80
GIT_AUTHOR_DATE="@1234 +0300" git commit --amend --reset-author &&
81
git rebase -m --committer-date-is-author-date HEAD^ &&
82
test_ctime_is_atime -1
83
'
84
85
-test_expect_success '--committer-date-is-author-date works with rebase -r' '
85
+test_expect_failure '--committer-date-is-author-date works with rebase -r' '
86
git checkout side &&
87
GIT_AUTHOR_DATE="@1234 +0300" git merge --no-ff commit3 &&
88
git rebase -r --root --committer-date-is-author-date &&
89
test_ctime_is_atime
90
'
91
92
-test_expect_success '--committer-date-is-author-date works when forking merge' '
92
+test_expect_failure '--committer-date-is-author-date works when forking merge' '
93
git checkout side &&
94
GIT_AUTHOR_DATE="@1234 +0300" git merge --no-ff commit3 &&
95
PATH="./test-bin:$PATH" git rebase -r --root --strategy=test \
@@ -145,7 +145,7 @@ test_expect_success '--reset-author-date works with rebase -r' '
145
test_atime_is_ignored
146
'
147
148
-test_expect_success '--reset-author-date with --committer-date-is-author-date works' '
148
+test_expect_failure '--reset-author-date with --committer-date-is-author-date works' '
149
test_must_fail git rebase -m --committer-date-is-author-date \
150
--reset-author-date --onto commit2^^ commit2^ commit3 &&
151
git checkout --theirs foo &&