From: Phillip Wood <phillip.wood123@gmail.com>
To: Philippe Blain via GitGitGadget <gitgitgadget@gmail.com>,
git@vger.kernel.org
Cc: "Elijah Newren" <newren@gmail.com>,
"Phillip Wood" <phillip.wood@dunelm.org.uk>,
"Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
"ZheNing Hu" <adlternative@gmail.com>,
"Kristoffer Haugsbakk" <code@khaugsbakk.name>,
"Rubén Justo" <rjusto@gmail.com>,
"Philippe Blain" <levraiphilippeblain@gmail.com>
Subject: Re: [PATCH v3 0/2] Allow disabling advice shown after merge conflicts
Date: Mon, 25 Mar 2024 10:48:12 +0000 [thread overview]
Message-ID: <e040c631-42d9-4501-a7b8-046f8dac6309@gmail.com> (raw)
In-Reply-To: <pull.1682.v3.git.1710623790.gitgitgadget@gmail.com>
Hi Philippe
On 16/03/2024 21:16, Philippe Blain via GitGitGadget wrote:
> Changes since v2:
>
> * expanded the commit messages to explain why the tests for 'git rebase' do
> not need to be adjusted
> * adjusted the wording of the new 'advice.mergeConflict' in the doc, as
> suggested by Kristoffer for uniformity with his series which is already
> merged to 'master' (b09a8839a4 (Merge branch
> 'kh/branch-ref-syntax-advice', 2024-03-15)).
> * checked all new output manually and consequently adjusted the code in 1/2
> to avoid a lonely 'hint: ' line.
> * adjusted the addition in advice.h in 1/2 to put the new enum
> alphabetically, as noticed by Rubén.
> * added misssing newlines in 2/2 as noticed by Phillip and tweaked by
> Junio.
> * rebased on master (2953d95d40 (The eighth batch, 2024-03-15)), to avoid
> conflicts in 'Documentation/config/advice.txt' due to Kristoffer's merged > series
> [...]
> Note that the code path where 'git rebase --apply' stops because of
> conflicts is not covered by the tests but I tested it manually using this
> diff:
>
> diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh
> index 47534f1062..34eac2e6f4 100755
> --- a/t/t5520-pull.sh
> +++ b/t/t5520-pull.sh
> @@ -374,7 +374,7 @@ test_pull_autostash_fail ()
> echo conflicting >>seq.txt &&
> test_tick &&
> git commit -m "Create conflict" seq.txt &&
> - test_must_fail git pull --rebase . seq 2>err >out &&
> + test_must_fail git -c rebase.backend=apply pull --rebase . seq 2>err >out &&
> test_grep "Resolve all conflicts manually" err
> '
Thanks for being so thorough, this version looks good to me
Best Wishes
Phillip
>
> Philippe Blain (2):
> sequencer: allow disabling conflict advice
> builtin/am: allow disabling conflict advice
>
> Documentation/config/advice.txt | 2 ++
> advice.c | 1 +
> advice.h | 1 +
> builtin/am.c | 14 +++++++++-----
> sequencer.c | 33 ++++++++++++++++++---------------
> t/t3501-revert-cherry-pick.sh | 1 +
> t/t3507-cherry-pick-conflict.sh | 2 ++
> t/t4150-am.sh | 8 ++++----
> t/t4254-am-corrupt.sh | 2 +-
> 9 files changed, 39 insertions(+), 25 deletions(-)
>
>
> base-commit: 2953d95d402b6bff1a59c4712f4d46f1b9ea137f
> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1682%2Fphil-blain%2Fsequencer-conflict-advice-v3
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1682/phil-blain/sequencer-conflict-advice-v3
> Pull-Request: https://github.com/gitgitgadget/git/pull/1682
>
> Range-diff vs v2:
>
> 1: a2ce6fd24c2 ! 1: 6005c1e9890 sequencer: allow disabling conflict advice
> @@ Commit message
> merge conflict through a new config 'advice.mergeConflict', which is
> named generically such that it can be used by other commands eventually.
>
> + Remove that final '\n' in the first hunk in sequencer.c to avoid an
> + otherwise empty 'hint: ' line before the line 'hint: Disable this
> + message with "git config advice.mergeConflict false"' which is
> + automatically added by 'advise_if_enabled'.
> +
> Note that we use 'advise_if_enabled' for each message in the second hunk
> in sequencer.c, instead of using 'if (show_hints &&
> advice_enabled(...)', because the former instructs the user how to
> @@ Commit message
>
> Update the tests accordingly. Note that the body of the second test in
> t3507-cherry-pick-conflict.sh is enclosed in double quotes, so we must
> - escape them in the added line.
> + escape them in the added line. Note that t5520-pull.sh, which checks
> + that we display the advice for 'git rebase' (via 'git pull --rebase')
> + does not have to be updated because it only greps for a specific line in
> + the advice message.
>
> Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
>
> ## Documentation/config/advice.txt ##
> @@ Documentation/config/advice.txt: advice.*::
> - Advice on how to set your identity configuration when
> - your information is guessed from the system username and
> - domain name.
> + Shown when the user's information is guessed from the
> + system username and domain name, to tell the user how to
> + set their identity configuration.
> + mergeConflict::
> -+ Advice shown when various commands stop because of conflicts.
> ++ Shown when various commands stop because of conflicts.
> nestedTag::
> - Advice shown if a user attempts to recursively tag a tag object.
> + Shown when a user attempts to recursively tag a tag object.
> pushAlreadyExists::
>
> ## advice.c ##
> @@ advice.c: static struct {
>
> ## advice.h ##
> @@ advice.h: enum advice_type {
> + ADVICE_GRAFT_FILE_DEPRECATED,
> ADVICE_IGNORED_HOOK,
> ADVICE_IMPLICIT_IDENTITY,
> - ADVICE_NESTED_TAG,
> + ADVICE_MERGE_CONFLICT,
> + ADVICE_NESTED_TAG,
> ADVICE_OBJECT_NAME_WARNING,
> ADVICE_PUSH_ALREADY_EXISTS,
> - ADVICE_PUSH_FETCH_FIRST,
>
> ## sequencer.c ##
> @@ sequencer.c: static void print_advice(struct repository *r, int show_hint,
> @@ sequencer.c: static void print_advice(struct repository *r, int show_hint,
>
> if (msg) {
> - advise("%s\n", msg);
> -+ advise_if_enabled(ADVICE_MERGE_CONFLICT, "%s\n", msg);
> ++ advise_if_enabled(ADVICE_MERGE_CONFLICT, "%s", msg);
> /*
> * A conflict has occurred but the porcelain
> * (typically rebase --interactive) wants to take care
> 2: 3235542cc6f ! 2: 73d07c8b6a7 builtin/am: allow disabling conflict advice
> @@ Commit message
> on stderr instead of stdout. In t4150, redirect stdout to 'out' and
> stderr to 'err', since this is less confusing. In t4254, as we are
> testing a specific failure mode of 'git am', simply disable the advice.
> + Note that we are not testing that this advice is shown in 'git rebase'
> + for the apply backend since 2ac0d6273f (rebase: change the default
> + backend from "am" to "merge", 2020-02-15).
>
> + Helped-by: Phillip Wood <phillip.wood@dunelm.org.uk>
> + Helped-by: Junio C Hamano <gitster@pobox.com>
> Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
>
> ## builtin/am.c ##
> @@ builtin/am.c: static const char *msgnum(const struct am_state *state)
>
> - printf_ln(_("When you have resolved this problem, run \"%s --continue\"."), cmdline);
> - printf_ln(_("If you prefer to skip this patch, run \"%s --skip\" instead."), cmdline);
> -+ strbuf_addf(&sb, _("When you have resolved this problem, run \"%s --continue\"."), cmdline);
> -+ strbuf_addf(&sb, _("If you prefer to skip this patch, run \"%s --skip\" instead."), cmdline);
> ++ strbuf_addf(&sb, _("When you have resolved this problem, run \"%s --continue\".\n"), cmdline);
> ++ strbuf_addf(&sb, _("If you prefer to skip this patch, run \"%s --skip\" instead.\n"), cmdline);
>
> if (advice_enabled(ADVICE_AM_WORK_DIR) &&
> is_empty_or_missing_file(am_path(state, "patch")) &&
> !repo_index_has_changes(the_repository, NULL, NULL))
> - printf_ln(_("To record the empty patch as an empty commit, run \"%s --allow-empty\"."), cmdline);
> -+ strbuf_addf(&sb, _("To record the empty patch as an empty commit, run \"%s --allow-empty\"."), cmdline);
> ++ strbuf_addf(&sb, _("To record the empty patch as an empty commit, run \"%s --allow-empty\".\n"), cmdline);
>
> - printf_ln(_("To restore the original branch and stop patching, run \"%s --abort\"."), cmdline);
> + strbuf_addf(&sb, _("To restore the original branch and stop patching, run \"%s --abort\"."), cmdline);
>
next prev parent reply other threads:[~2024-03-25 14:34 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-02 16:18 [PATCH] sequencer: allow disabling conflict advice Philippe Blain via GitGitGadget
2024-03-02 16:32 ` Philippe Blain
2024-03-03 22:57 ` Junio C Hamano
2024-03-09 17:22 ` Philippe Blain
2024-03-09 18:58 ` Philippe Blain
2024-03-09 19:55 ` Junio C Hamano
2024-03-09 23:19 ` Junio C Hamano
2024-03-04 10:12 ` Phillip Wood
2024-03-04 10:27 ` Phillip Wood
2024-03-04 17:56 ` Junio C Hamano
2024-03-09 17:53 ` Philippe Blain
2024-03-09 19:15 ` Phillip Wood
2024-03-09 19:56 ` Junio C Hamano
2024-03-09 18:01 ` Philippe Blain
2024-03-10 19:50 ` [PATCH v2 0/2] Allow disabling advice shown after merge conflicts Philippe Blain via GitGitGadget
2024-03-10 19:51 ` [PATCH v2 1/2] sequencer: allow disabling conflict advice Philippe Blain via GitGitGadget
2024-03-11 10:29 ` Kristoffer Haugsbakk
2024-03-16 19:33 ` Philippe Blain
2024-03-10 19:51 ` [PATCH v2 2/2] builtin/am: " Philippe Blain via GitGitGadget
2024-03-11 10:54 ` phillip.wood123
2024-03-11 17:12 ` Junio C Hamano
2024-03-11 17:49 ` Junio C Hamano
2024-03-16 19:44 ` Philippe Blain
2024-03-16 20:01 ` Philippe Blain
2024-03-11 20:58 ` [PATCH v2 0/2] Allow disabling advice shown after merge conflicts Rubén Justo
2024-03-16 20:33 ` Philippe Blain
2024-03-16 21:16 ` [PATCH v3 " Philippe Blain via GitGitGadget
2024-03-16 21:16 ` [PATCH v3 1/2] sequencer: allow disabling conflict advice Philippe Blain via GitGitGadget
2024-03-16 21:16 ` [PATCH v3 2/2] builtin/am: " Philippe Blain via GitGitGadget
2024-03-18 16:31 ` [PATCH v3 0/2] Allow disabling advice shown after merge conflicts Junio C Hamano
2024-03-25 10:48 ` Phillip Wood [this message]
2024-03-25 16:57 ` 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
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=e040c631-42d9-4501-a7b8-046f8dac6309@gmail.com \
--to=phillip.wood123@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=adlternative@gmail.com \
--cc=code@khaugsbakk.name \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=levraiphilippeblain@gmail.com \
--cc=newren@gmail.com \
--cc=phillip.wood@dunelm.org.uk \
--cc=rjusto@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.
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).