From: Josh Triplett <josh@joshtriplett.org>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>
Subject: [PATCH] commit: Avoid redundant scissor line with --cleanup=scissors -v
Date: Sun, 25 Feb 2024 20:23:16 -0800 [thread overview]
Message-ID: <9c09cea2679e14258720ee63e932e3b9459dbd8c.1708921369.git.josh@joshtriplett.org> (raw)
`git commit --cleanup=scissors -v` currently prints two scissors lines:
one at the start of the comment lines, and the other right before the
diff. This is redundant, and pushes the diff further down in the user's
editor than it needs to be.
Pass the cleanup mode into wt_status, so that wt_status_print can avoid
printing the extra scissors if already printed.
This moves the enum commit_msg_cleanup_mode from sequencer.h to
wt-status.h to allow wt_status to use the type. sequencer.h already
includes wt-status.h, so this doesn't affect anything else.
Signed-off-by: Josh Triplett <josh@joshtriplett.org>
---
builtin/commit.c | 2 ++
sequencer.h | 7 -------
wt-status.c | 6 ++++--
wt-status.h | 8 ++++++++
4 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/builtin/commit.c b/builtin/commit.c
index 6d1fa71676..6b2b412932 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -888,6 +888,8 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
*/
s->hints = 0;
+ s->cleanup_mode = cleanup_mode;
+
if (clean_message_contents)
strbuf_stripspace(&sb, '\0');
diff --git a/sequencer.h b/sequencer.h
index dcef7bb99c..9f818e96f0 100644
--- a/sequencer.h
+++ b/sequencer.h
@@ -22,13 +22,6 @@ enum replay_action {
REPLAY_INTERACTIVE_REBASE
};
-enum commit_msg_cleanup_mode {
- COMMIT_MSG_CLEANUP_SPACE,
- COMMIT_MSG_CLEANUP_NONE,
- COMMIT_MSG_CLEANUP_SCISSORS,
- COMMIT_MSG_CLEANUP_ALL
-};
-
struct replay_opts {
enum replay_action action;
diff --git a/wt-status.c b/wt-status.c
index b5a29083df..459d399baa 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -1143,11 +1143,13 @@ static void wt_longstatus_print_verbose(struct wt_status *s)
* file (and even the "auto" setting won't work, since it
* will have checked isatty on stdout). But we then do want
* to insert the scissor line here to reliably remove the
- * diff before committing.
+ * diff before committing, if we didn't already include one
+ * before.
*/
if (s->fp != stdout) {
rev.diffopt.use_color = 0;
- wt_status_add_cut_line(s->fp);
+ if (s->cleanup_mode != COMMIT_MSG_CLEANUP_SCISSORS)
+ wt_status_add_cut_line(s->fp);
}
if (s->verbose > 1 && s->committable) {
/* print_updated() printed a header, so do we */
diff --git a/wt-status.h b/wt-status.h
index 819dcad723..5ede705e93 100644
--- a/wt-status.h
+++ b/wt-status.h
@@ -22,6 +22,13 @@ enum color_wt_status {
WT_STATUS_MAXSLOT
};
+enum commit_msg_cleanup_mode {
+ COMMIT_MSG_CLEANUP_SPACE,
+ COMMIT_MSG_CLEANUP_NONE,
+ COMMIT_MSG_CLEANUP_SCISSORS,
+ COMMIT_MSG_CLEANUP_ALL
+};
+
enum untracked_status_type {
SHOW_NO_UNTRACKED_FILES,
SHOW_NORMAL_UNTRACKED_FILES,
@@ -130,6 +137,7 @@ struct wt_status {
int rename_score;
int rename_limit;
enum wt_status_format status_format;
+ enum commit_msg_cleanup_mode cleanup_mode;
struct wt_status_state state;
struct object_id oid_commit; /* when not Initial */
--
2.43.0
next reply other threads:[~2024-02-26 4:23 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-26 4:23 Josh Triplett [this message]
2024-02-26 18:03 ` [PATCH] commit: Avoid redundant scissor line with --cleanup=scissors -v Junio C Hamano
2024-02-27 8:32 ` Josh Triplett
2024-02-27 9:16 ` [PATCH v2 1/2] " Josh Triplett
2024-02-27 9:17 ` [PATCH v2 2/2] commit: Unify logic to avoid multiple scissors lines when merging Josh Triplett
2024-02-27 17:43 ` [PATCH v2 1/2] commit: Avoid redundant scissor line with --cleanup=scissors -v Junio C Hamano
2024-02-29 4:19 ` Josh Triplett
2024-02-29 5:41 ` Junio C Hamano
2024-02-29 6:09 ` Josh Triplett
2024-02-29 16:38 ` Junio C Hamano
2024-02-27 17:10 ` [PATCH] " Junio C Hamano
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=9c09cea2679e14258720ee63e932e3b9459dbd8c.1708921369.git.josh@joshtriplett.org \
--to=josh@joshtriplett.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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).