On 15/08/2021 18:36, Junio C Hamano wrote:
Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes:
Good point. The commit tagged with amended-goodbye is later used in
some tests that ensure the author ident does not change across a
rebase. If this commit gets created without authorship customized
(i.e. before Phillip's fix), we would not catch a possible breakage
to make rebase discard the original authorship information.
But with this fix, we now can catch such a breakage.
I'll expand the commit message to make that clear
Maybe you could even add a `test another.author@xxxxxxxxxxx = $(git show
-s --format=%ae HEAD)`?
The version I have from Phillip has updated log message already, but
not with such a regression prevention.
The test that the patch under discussion corrects does this:
test_expect_success 'correct authorship when committing empty pick' '
test_when_finished "git rebase --abort" &&
test_must_fail git rebase -i --onto goodbye \
amended-goodbye^ amended-goodbye &&
git commit --allow-empty &&
git log --pretty=format:"%an <%ae>%n%ad%B" -1 amended-goodbye >expect &&
git log --pretty=format:"%an <%ae>%n%ad%B" -1 HEAD >actual &&
test_cmp expect actual
'
I wonder if it would be better to hard code the author in this test rather
than rather than relying on git log like this
diff --git a/t/t3403-rebase-skip.sh b/t/t3403-rebase-skip.sh
index e26762d0b2..c90e32817f 100755
--- a/t/t3403-rebase-skip.sh
+++ b/t/t3403-rebase-skip.sh
@@ -34,9 +34,10 @@ test_expect_success setup '
git tag reverted-goodbye &&
git checkout goodbye &&
test_tick &&
- GIT_AUTHOR_NAME="Another Author" \
- GIT_AUTHOR_EMAIL="another.author@xxxxxxxxxxx" \
- git commit --amend --no-edit -m amended-goodbye &&
+ another_author="Another Author <another.author@xxxxxxxxxxx>" &&
+ git commit --amend --no-edit -m amended-goodbye \
+ --author="$another_author" --date="$GIT_AUTHOR_DATE" &&
+ another_author="$another_author $GIT_AUTHOR_DATE" &&
test_tick &&
git tag amended-goodbye &&
@@ -110,8 +111,10 @@ test_expect_success 'correct authorship when committing empty pick' '
test_must_fail git rebase -i --onto goodbye \
amended-goodbye^ amended-goodbye &&
git commit --allow-empty &&
- git log --pretty=format:"%an <%ae>%n%ad%B" -1 amended-goodbye >expect &&
- git log --pretty=format:"%an <%ae>%n%ad%B" -1 HEAD >actual &&
+ git log --pretty=format:"$another_author%n%B" -1 amended-goodbye \
+ >expect &&
+ git log --date=raw --pretty=format:"%an <%ae> %ad%n%B" -1 HEAD \
+ >actual &&
test_cmp expect actual
'