From: Jonathan Bressat <git.jonathan.bressat@gmail.com>
To: git.jonathan.bressat@gmail.com
Cc: Matthieu.Moy@univ-lyon1.fr, cogoni.guillaume@gmail.com,
git@vger.kernel.org, gitster@pobox.com,
guillaume.cogoni@gmail.com, jonathan.bressat@etu.univ-lyon1.fr
Subject: [PATCH v2 4/4] error message now advice to use the new option
Date: Fri, 27 May 2022 21:55:45 +0200 [thread overview]
Message-ID: <20220527195545.33984-5-git.jonathan.bressat@gmail.com> (raw)
In-Reply-To: <20220527195545.33984-1-git.jonathan.bressat@gmail.com>
When all the untracked files in the working tree have the same content
than the files in merged branch then the error message advice to use
the --overwrite-same-content option.
Signed-off-by: Jonathan Bressat <git.jonathan.bressat@gmail.com>
Signed-off-by: COGONI Guillaume <cogoni.guillaume@gmail.com>
---
builtin/checkout.c | 1 +
unpack-trees.c | 20 ++++++++++++++++----
unpack-trees.h | 1 +
3 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/builtin/checkout.c b/builtin/checkout.c
index cc804ba8e1..1b1d1813c7 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -760,6 +760,7 @@ static int merge_working_tree(const struct checkout_opts *opts,
&new_branch_info->commit->object.oid :
&new_branch_info->oid, NULL);
topts.preserve_ignored = !opts->overwrite_ignore;
+ topts.overwrite_same_content = 0;/* FIXME: opts->overwrite_same_content */
tree = parse_tree_indirect(old_branch_info->commit ?
&old_branch_info->commit->object.oid :
the_hash_algo->empty_tree);
diff --git a/unpack-trees.c b/unpack-trees.c
index 1a52be723e..6c660b084b 100644
--- a/unpack-trees.c
+++ b/unpack-trees.c
@@ -158,17 +158,17 @@ void setup_unpack_trees_porcelain(struct unpack_trees_options *opts,
if (!strcmp(cmd, "checkout"))
msg = advice_enabled(ADVICE_COMMIT_BEFORE_MERGE)
? _("The following untracked working tree files would be overwritten by checkout:\n%%s"
- "Please move or remove them before you switch branches.")
+ "Please move or remove them before you switch branches.%%s")
: _("The following untracked working tree files would be overwritten by checkout:\n%%s");
else if (!strcmp(cmd, "merge"))
msg = advice_enabled(ADVICE_COMMIT_BEFORE_MERGE)
? _("The following untracked working tree files would be overwritten by merge:\n%%s"
- "Please move or remove them before you merge.")
+ "Please move or remove them before you merge.%%s")
: _("The following untracked working tree files would be overwritten by merge:\n%%s");
else
msg = advice_enabled(ADVICE_COMMIT_BEFORE_MERGE)
? _("The following untracked working tree files would be overwritten by %s:\n%%s"
- "Please move or remove them before you %s.")
+ "Please move or remove them before you %s.%%s")
: _("The following untracked working tree files would be overwritten by %s:\n%%s");
msgs[ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN] =
strvec_pushf(&opts->msgs_to_free, msg, cmd, cmd);
@@ -251,6 +251,14 @@ static void display_error_msgs(struct unpack_trees_options *o)
{
int e;
unsigned error_displayed = 0;
+ const char *can_overwrite_msg;
+
+ if (o->can_overwrite) {
+ can_overwrite_msg = _("\nYou can also rerun the command with --overwrite-same-content to overwrite files with same content.");
+ } else {
+ can_overwrite_msg = "";
+ }
+
for (e = 0; e < NB_UNPACK_TREES_ERROR_TYPES; e++) {
struct string_list *rejects = &o->unpack_rejects[e];
@@ -261,7 +269,8 @@ static void display_error_msgs(struct unpack_trees_options *o)
error_displayed = 1;
for (i = 0; i < rejects->nr; i++)
strbuf_addf(&path, "\t%s\n", rejects->items[i].string);
- error(ERRORMSG(o, e), super_prefixed(path.buf));
+
+ error(ERRORMSG(o, e), super_prefixed(path.buf), can_overwrite_msg);
strbuf_release(&path);
}
string_list_clear(rejects, 0);
@@ -1711,6 +1720,7 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
struct pattern_list pl;
int free_pattern_list = 0;
struct dir_struct dir = DIR_INIT;
+ o->can_overwrite = 1;
if (o->reset == UNPACK_RESET_INVALID)
BUG("o->reset had a value of 1; should be UNPACK_TREES_*_UNTRACKED");
@@ -2261,6 +2271,8 @@ static int check_ok_to_remove(const char *name, int len, int dtype,
if(o->overwrite_same_content) {
return 0;
}
+ } else {
+ o->can_overwrite = 0;
}
return add_rejected_path(o, error_type, name);
diff --git a/unpack-trees.h b/unpack-trees.h
index ebe4be0b35..2be74ce5bf 100644
--- a/unpack-trees.h
+++ b/unpack-trees.h
@@ -72,6 +72,7 @@ struct unpack_trees_options {
exiting_early,
show_all_errors,
overwrite_same_content,
+ can_overwrite,
dry_run;
enum unpack_trees_reset_type reset;
const char *prefix;
--
2.35.1.10.g88248585b1.dirty
next prev parent reply other threads:[~2022-05-27 19:56 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-27 15:41 [WIP]: make merge nicer to the user Guillaume Cogoni
2022-04-12 19:15 ` [PATCH 0/1] Be nicer to the user on tracked/untracked merge conflicts Jonathan
2022-04-12 19:15 ` [PATCH 1/1] Merge with untracked file that are the same without failure and test Jonathan
2022-04-12 19:21 ` Ævar Arnfjörð Bjarmason
2022-04-13 18:18 ` Junio C Hamano
2022-04-25 20:27 ` [PATCH v1 0/2] Be nicer to the user on tracked/untracked merge conflicts Jonathan
2022-04-25 20:27 ` [PATCH v1 1/2] t7615: test how merge behave when there is untracked file Jonathan
2022-04-25 20:27 ` [PATCH v1 2/2] merge with untracked file that are the same without failure Jonathan
2022-04-25 21:16 ` [PATCH v1 0/2] Be nicer to the user on tracked/untracked merge conflicts Junio C Hamano
2022-04-25 22:28 ` Guillaume Cogoni
2022-04-25 23:10 ` Junio C Hamano
[not found] ` <fdd9f13d14e942f3a1572866761b9580@SAMBXP02.univ-lyon1.fr>
2022-04-26 6:38 ` Matthieu Moy
2022-04-26 16:13 ` Junio C Hamano
2022-04-28 10:33 ` Jonathan Bressat
2022-05-27 19:55 ` [PATCH v2 0/4] " Jonathan Bressat
2022-05-27 19:55 ` [PATCH v2 1/4] t6436: tests how merge behave when there is untracked file with the same content Jonathan Bressat
2022-05-27 19:55 ` [PATCH v2 2/4] merge with untracked file that are the same without failure Jonathan Bressat
2022-05-27 19:55 ` [PATCH v2 3/4] add configuration variable corresponding to --overwrite-same-content Jonathan Bressat
2022-05-27 19:55 ` Jonathan Bressat [this message]
[not found] ` <dfea1d98c15047428b1a11adbc002eef@SAMBXP02.univ-lyon1.fr>
2022-06-04 9:44 ` [PATCH v2 1/4] t6436: tests how merge behave when there is untracked file with the same content Matthieu Moy
[not found] ` <be2297bdcd724c3f8abfde2d5d74fb18@SAMBXP02.univ-lyon1.fr>
2022-06-04 9:45 ` [PATCH v2 2/4] merge with untracked file that are the same without failure Matthieu Moy
[not found] ` <82beb916d9c44a069f30ec4ff261e3be@SAMBXP02.univ-lyon1.fr>
2022-06-04 9:45 ` [PATCH v2 4/4] error message now advice to use the new option Matthieu Moy
2022-06-10 12:58 ` Guillaume Cogoni
[not found] ` <4efbe7d9c95841c691f51954670a1d9f@SAMBXP02.univ-lyon1.fr>
2022-06-04 9:49 ` [PATCH v2 3/4] add configuration variable corresponding to --overwrite-same-content Matthieu Moy
[not found] ` <eca66375d8b34154856b7da303bf96d7@SAMBXP02.univ-lyon1.fr>
2022-04-26 6:48 ` [PATCH v1 1/2] t7615: test how merge behave when there is untracked file Matthieu Moy
2022-04-12 19:24 ` [PATCH 0/1] Be nicer to the user on tracked/untracked merge conflicts Ævar Arnfjörð Bjarmason
2022-04-14 8:57 ` Jonathan Bressat
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=20220527195545.33984-5-git.jonathan.bressat@gmail.com \
--to=git.jonathan.bressat@gmail.com \
--cc=Matthieu.Moy@univ-lyon1.fr \
--cc=cogoni.guillaume@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=guillaume.cogoni@gmail.com \
--cc=jonathan.bressat@etu.univ-lyon1.fr \
/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).