From: Firmin Martin <firminmartin24@gmail.com>
To: Firmin Martin <firminmartin24@gmail.com>, git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>, Jeff King <peff@peff.net>,
Johannes Schindelin <johannes.schindelin@gmail.com>,
Erik Faye-Lund <kusmabite@gmail.com>,
Denton Liu <liu.denton@gmail.com>
Subject: [PATCH v1 3/8] format-patch: add config option confirmOverwrite
Date: Thu, 6 May 2021 18:50:57 +0200 [thread overview]
Message-ID: <20210506165102.123739-4-firminmartin24@gmail.com> (raw)
In-Reply-To: <20210506165102.123739-1-firminmartin24@gmail.com>
Provide the configuration option format.confirmOverwrite. This option
will decide whether a confirmation is required to overwrite cover letter
or patches issued by git-format-patch.
It accepts three values.
* "never"/"always": never/always ask confirmation whenever cover letter
or patches are subject to be overwritten.
* "cover": ask confirmation only if a cover letter is subject to be
overwritten.
format.confirmOverwrite defaults to "cover" to avoid cover letter
being written be overwritten mistakenly.
Signed-off-by: Firmin Martin <firminmartin24@gmail.com>
---
builtin/log.c | 28 +++++++++++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/builtin/log.c b/builtin/log.c
index bada3db9eb..ec9848da70 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -816,6 +816,12 @@ enum auto_base_setting {
AUTO_BASE_WHEN_ABLE
};
+enum confirm_overwrite_setting {
+ CONFIRM_OVERWRITE_NEVER,
+ CONFIRM_OVERWRITE_ALWAYS,
+ CONFIRM_OVERWRITE_COVER
+};
+
static enum thread_level thread;
static int do_signoff;
static enum auto_base_setting auto_base;
@@ -827,6 +833,7 @@ static const char *config_output_directory;
static enum cover_from_description cover_from_description_mode = COVER_FROM_MESSAGE;
static int show_notes;
static struct display_notes_opt notes_opt;
+static enum confirm_overwrite_setting confirm_overwrite = CONFIRM_OVERWRITE_COVER;
static enum cover_from_description parse_cover_from_description(const char *arg)
{
@@ -844,6 +851,18 @@ static enum cover_from_description parse_cover_from_description(const char *arg)
die(_("%s: invalid cover from description mode"), arg);
}
+static enum confirm_overwrite_setting parse_confirm_overwrite(const char *arg)
+{
+ if (!arg || !strcasecmp(arg, "cover"))
+ return CONFIRM_OVERWRITE_COVER;
+ else if (!strcasecmp(arg, "always"))
+ return CONFIRM_OVERWRITE_ALWAYS;
+ else if (!strcasecmp(arg, "never"))
+ return CONFIRM_OVERWRITE_NEVER;
+ else
+ die(_("%s: invalid file overwrite setting"), arg);
+}
+
static int git_format_config(const char *var, const char *value, void *cb)
{
if (!strcmp(var, "format.headers")) {
@@ -949,6 +968,10 @@ static int git_format_config(const char *var, const char *value, void *cb)
cover_from_description_mode = parse_cover_from_description(value);
return 0;
}
+ if (!strcmp(var, "format.confirmoverwrite")) {
+ confirm_overwrite = parse_confirm_overwrite(value);
+ return 0;
+ }
return git_log_config(var, value, cb);
}
@@ -977,7 +1000,10 @@ static int open_next_file(struct commit *commit, const char *subject,
else
fmt_output_subject(&filename, subject, rev);
- if (not_prompted && !access(filename.buf, F_OK)) {
+ if (not_prompted &&
+ ((rev->nr == 0 && confirm_overwrite == CONFIRM_OVERWRITE_COVER) ||
+ confirm_overwrite == CONFIRM_OVERWRITE_ALWAYS) &&
+ !access(filename.buf, F_OK)) {
/*
* TRANSLATORS: Make sure to include [Y] and [n] in your
--
2.31.1.449.g4a44fa8106
next prev parent reply other threads:[~2021-05-06 16:52 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-06 16:50 [PATCH v1 0/8] format-patch: introduce --confirm-overwrite Firmin Martin
2021-05-06 16:50 ` [PATCH v1 1/8] compat/terminal: let prompt accept input from pipe Firmin Martin
2021-05-06 23:37 ` Junio C Hamano
2021-05-07 4:54 ` Jeff King
2021-05-07 5:25 ` Junio C Hamano
2021-05-10 4:18 ` Firmin Martin
2021-05-10 21:32 ` Jeff King
2021-05-11 3:38 ` Junio C Hamano
2021-05-11 6:10 ` Jeff King
2021-05-11 6:17 ` Junio C Hamano
2021-05-11 6:37 ` Jeff King
2021-05-06 16:50 ` [PATCH v1 2/8] format-patch: confirmation whenever patches exist Firmin Martin
2021-05-06 23:48 ` Junio C Hamano
2021-05-10 3:30 ` Firmin Martin
2021-05-10 7:32 ` Junio C Hamano
2021-05-11 3:17 ` Firmin Martin
2021-05-06 16:50 ` Firmin Martin [this message]
2021-05-06 16:50 ` [PATCH v1 4/8] format-patch: add the option --confirm-overwrite Firmin Martin
2021-05-06 16:50 ` [PATCH v1 5/8] t4014: test patches overwrite confirmation Firmin Martin
2021-05-06 16:51 ` [PATCH v1 6/8] t4014: fix tests overwriting cover letter in silent Firmin Martin
2021-05-06 16:51 ` [PATCH v1 7/8] doc/format-patch: describe --confirm-overwrite Firmin Martin
2021-05-07 3:32 ` Bagas Sanjaya
2021-05-10 4:22 ` Firmin Martin
2021-05-06 16:51 ` [PATCH v1 8/8] config/format: describe format.confirmOverwrite Firmin Martin
2021-05-06 22:33 ` [PATCH v1 0/8] format-patch: introduce --confirm-overwrite Junio C Hamano
2021-05-11 0:18 ` Firmin Martin
2021-05-07 1:46 ` Felipe Contreras
2021-05-07 8:55 ` Denton Liu
2021-05-11 1:09 ` Firmin Martin
2021-05-11 5:12 ` Felipe Contreras
2021-05-11 5:03 ` Felipe Contreras
2021-05-07 14:02 ` Sergey Organov
2021-05-11 0:46 ` Firmin Martin
2021-05-10 12:02 ` Ævar Arnfjörð Bjarmason
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210506165102.123739-4-firminmartin24@gmail.com \
--to=firminmartin24@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=johannes.schindelin@gmail.com \
--cc=kusmabite@gmail.com \
--cc=liu.denton@gmail.com \
--cc=peff@peff.net \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).