sequencer: comment --reference
subject line properly
`git revert --reference <commit>` leaves behind a comment in the
first line:[1]
# *** SAY WHY WE ARE REVERTING ON THE TITLE LINE ***
Meaning that the commit will just consist of the next line if the user
exits the editor directly:
This reverts commit <--format=reference commit>
But the comment char here is hardcoded (#). Which means that the
comment line will inadvertently be included in the commit message if
`core.commentChar`/`core.commentString` is in use.
† 1: See 43966ab315
(revert: optionally refer to commit in the
"reference" format, 2022-05-26)
Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
94304b9f48
commit
515d034f8d
@ -2341,8 +2341,8 @@ static int do_pick_commit(struct repository *r,
|
||||
next = parent;
|
||||
next_label = msg.parent_label;
|
||||
if (opts->commit_use_reference) {
|
||||
strbuf_addstr(&ctx->message,
|
||||
"# *** SAY WHY WE ARE REVERTING ON THE TITLE LINE ***");
|
||||
strbuf_commented_addf(&ctx->message, comment_line_str,
|
||||
"*** SAY WHY WE ARE REVERTING ON THE TITLE LINE ***");
|
||||
} else if (skip_prefix(msg.subject, "Revert \"", &orig_subject) &&
|
||||
/*
|
||||
* We don't touch pre-existing repeated reverts, because
|
||||
@ -2352,12 +2352,13 @@ static int do_pick_commit(struct repository *r,
|
||||
!starts_with(orig_subject, "Revert \"")) {
|
||||
strbuf_addstr(&ctx->message, "Reapply \"");
|
||||
strbuf_addstr(&ctx->message, orig_subject);
|
||||
strbuf_addstr(&ctx->message, "\n");
|
||||
} else {
|
||||
strbuf_addstr(&ctx->message, "Revert \"");
|
||||
strbuf_addstr(&ctx->message, msg.subject);
|
||||
strbuf_addstr(&ctx->message, "\"");
|
||||
strbuf_addstr(&ctx->message, "\"\n");
|
||||
}
|
||||
strbuf_addstr(&ctx->message, "\n\nThis reverts commit ");
|
||||
strbuf_addstr(&ctx->message, "\nThis reverts commit ");
|
||||
refer_to_commit(opts, &ctx->message, commit);
|
||||
|
||||
if (commit->parents && commit->parents->next) {
|
||||
|
@ -228,6 +228,20 @@ test_expect_success 'identification of reverted commit (--reference)' '
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'git revert --reference with core.commentChar' '
|
||||
test_when_finished "git reset --hard to-ident" &&
|
||||
git checkout --detach to-ident &&
|
||||
GIT_EDITOR="head -n4 >actual" git -c core.commentChar=% revert \
|
||||
--edit --reference HEAD &&
|
||||
cat <<-EOF >expect &&
|
||||
% *** SAY WHY WE ARE REVERTING ON THE TITLE LINE ***
|
||||
|
||||
This reverts commit $(git show -s --pretty=reference HEAD^).
|
||||
|
||||
EOF
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'identification of reverted commit (revert.reference)' '
|
||||
git checkout --detach to-ident &&
|
||||
git -c revert.reference=true revert --no-edit HEAD &&
|
||||
|
Reference in New Issue
Block a user