From: kristofferhaugsbakk@fastmail.com
To: git@vger.kernel.org
Cc: Kristoffer Haugsbakk <code@khaugsbakk.name>,
stolee@gmail.com, phillip.wood123@gmail.com, me@ttaylorr.com
Subject: [PATCH v3 2/3] sequencer: comment `--reference` subject line properly
Date: Sun, 24 Nov 2024 21:56:11 +0100 [thread overview]
Message-ID: <7a452142666e5ffd2f69f79532781284b5bba8fa.1732481200.git.code@khaugsbakk.name> (raw)
In-Reply-To: <cover.1732481200.git.code@khaugsbakk.name>
From: Kristoffer Haugsbakk <code@khaugsbakk.name>
`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 43966ab3156 (revert: optionally refer to commit in the
"reference" format, 2022-05-26)
Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>
---
Notes (series):
v3:
• Review feedback: check more in the test by inspecting the
proposed commit message.
Link: https://lore.kernel.org/git/4c623fcf-01dd-4056-80c1-b3c860ab7f87@gmail.com/
• Message:
• Rewrite message now that we are testing something different
• consistency with the other two messages (see previous)
v2:
• `strbuf_commented_addf` adds a newline, unlike the previous function.
We need to remove a newline from the final `strbuf_addstr` with `This
reverts commits` and add a newline to each of the other
branches (`else if` and `else`).
sequencer.c | 9 +++++----
t/t3501-revert-cherry-pick.sh | 14 ++++++++++++++
2 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/sequencer.c b/sequencer.c
index 1b6fd86f70b..d26299cdea2 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -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) {
diff --git a/t/t3501-revert-cherry-pick.sh b/t/t3501-revert-cherry-pick.sh
index 411027fb58c..43476236131 100755
--- a/t/t3501-revert-cherry-pick.sh
+++ b/t/t3501-revert-cherry-pick.sh
@@ -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="cat | head -4 >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 &&
--
2.47.0
next prev parent reply other threads:[~2024-11-24 20:56 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-23 17:27 [PATCH] sequencer: comment checked-out branch properly kristofferhaugsbakk
2024-10-23 18:44 ` Taylor Blau
2024-10-23 19:53 ` Kristoffer Haugsbakk
2024-10-31 16:30 ` Phillip Wood
2024-10-31 17:25 ` Kristoffer Haugsbakk
2024-10-31 20:30 ` phillip.wood123
2024-10-31 9:58 ` Phillip Wood
2024-10-31 10:07 ` Kristoffer Haugsbakk
2024-10-31 16:30 ` Phillip Wood
2024-10-23 20:43 ` Taylor Blau
2024-10-23 20:51 ` Kristoffer Haugsbakk
2024-11-12 10:20 ` [PATCH v2 0/3] sequencer: comment out properly in todo list kristofferhaugsbakk
2024-11-12 10:20 ` [PATCH v2 1/3] sequencer: comment checked-out branch properly kristofferhaugsbakk
2024-11-13 1:07 ` Junio C Hamano
2024-11-13 1:18 ` Junio C Hamano
2024-11-13 14:47 ` phillip.wood123
2024-11-13 22:57 ` Junio C Hamano
2024-11-24 20:02 ` Kristoffer Haugsbakk
2024-11-12 10:20 ` [PATCH v2 2/3] sequencer: comment `--reference` subject line properly kristofferhaugsbakk
2024-11-13 1:07 ` Junio C Hamano
2024-11-13 14:48 ` phillip.wood123
2024-11-13 23:00 ` Junio C Hamano
2024-11-12 10:20 ` [PATCH v2 3/3] sequencer: comment commit messages properly kristofferhaugsbakk
2024-11-13 1:03 ` Junio C Hamano
2024-11-13 14:49 ` phillip.wood123
2024-11-24 19:58 ` Kristoffer Haugsbakk
2024-11-13 0:26 ` [PATCH v2 0/3] sequencer: comment out properly in todo list Junio C Hamano
2024-11-24 20:01 ` Kristoffer Haugsbakk
2024-11-24 20:56 ` [PATCH v3 " kristofferhaugsbakk
2024-11-24 20:56 ` [PATCH v3 1/3] sequencer: comment checked-out branch properly kristofferhaugsbakk
2024-11-24 20:56 ` kristofferhaugsbakk [this message]
2024-11-24 20:56 ` [PATCH v3 3/3] sequencer: comment commit messages properly kristofferhaugsbakk
2024-11-25 10:07 ` [PATCH v3 0/3] sequencer: comment out properly in todo list phillip.wood123
2024-11-25 10:52 ` Kristoffer Haugsbakk
2024-11-25 14:36 ` phillip.wood123
2024-11-25 20:13 ` [PATCH v4 " kristofferhaugsbakk
2024-11-25 20:13 ` [PATCH v4 1/3] sequencer: comment checked-out branch properly kristofferhaugsbakk
2024-11-25 20:13 ` [PATCH v4 2/3] sequencer: comment `--reference` subject line properly kristofferhaugsbakk
2024-11-25 20:13 ` [PATCH v4 3/3] sequencer: comment commit messages properly kristofferhaugsbakk
2024-11-26 1:11 ` [PATCH v4 0/3] sequencer: comment out properly in todo list Junio C Hamano
2024-11-26 11:24 ` Phillip Wood
2024-11-27 12:39 ` Kristoffer Haugsbakk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7a452142666e5ffd2f69f79532781284b5bba8fa.1732481200.git.code@khaugsbakk.name \
--to=kristofferhaugsbakk@fastmail.com \
--cc=code@khaugsbakk.name \
--cc=git@vger.kernel.org \
--cc=me@ttaylorr.com \
--cc=phillip.wood123@gmail.com \
--cc=stolee@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).