From: Phillip Wood Date: Mon, 24 Mar 2025 09:32:24 GMT Subject: Re: [PATCH v2 3/3] advice: allow disabling default branch name advice Message-ID: <16a8af3d-151b-489d-a693-3cd2658c45ef@gmail.com> In-Reply-To: <20250321231639.180762-4-jltobler@gmail.com> Hi Justin On 21/03/2025 23:16, Justin Tobler wrote: > The default branch name advice message is displayed when > `repo_default_branch_name()` is invoked and the `init.defaultBranch` > config is not set. In this scenario, the advice message is always shown > even if the `--no-advice` option is used. > > Adapt `repo_default_branch_name()` to allow the default branch name > advice message to be disabled with the `--no-advice` option and > corresponding configuration. Thanks for adding this, it has always bothered me that the only way to silence this hint was by setting a default branch name, rather than being able to just accept git's default by setting the appropiate advice variable. The patch looks good to me Best Wishes Phillip > Signed-off-by: Justin Tobler > --- > advice.c | 1 + > advice.h | 1 + > refs.c | 3 ++- > t/t0001-init.sh | 8 ++++++++ > 4 files changed, 12 insertions(+), 1 deletion(-) > > diff --git a/advice.c b/advice.c > index 1df43b7536..e5f0ff8449 100644 > --- a/advice.c > +++ b/advice.c > @@ -51,6 +51,7 @@ static struct { > [ADVICE_AM_WORK_DIR] = { "amWorkDir" }, > [ADVICE_CHECKOUT_AMBIGUOUS_REMOTE_BRANCH_NAME] = { "checkoutAmbiguousRemoteBranchName" }, > [ADVICE_COMMIT_BEFORE_MERGE] = { "commitBeforeMerge" }, > + [ADVICE_DEFAULT_BRANCH_NAME] = { "defaultBranchName" }, > [ADVICE_DETACHED_HEAD] = { "detachedHead" }, > [ADVICE_DIVERGING] = { "diverging" }, > [ADVICE_FETCH_SET_HEAD_WARN] = { "fetchRemoteHEADWarn" }, > diff --git a/advice.h b/advice.h > index d233cfc693..727dcecf4a 100644 > --- a/advice.h > +++ b/advice.h > @@ -18,6 +18,7 @@ enum advice_type { > ADVICE_AM_WORK_DIR, > ADVICE_CHECKOUT_AMBIGUOUS_REMOTE_BRANCH_NAME, > ADVICE_COMMIT_BEFORE_MERGE, > + ADVICE_DEFAULT_BRANCH_NAME, > ADVICE_DETACHED_HEAD, > ADVICE_DIVERGING, > ADVICE_FETCH_SET_HEAD_WARN, > diff --git a/refs.c b/refs.c > index 118465271d..bf9a40d6af 100644 > --- a/refs.c > +++ b/refs.c > @@ -664,7 +664,8 @@ char *repo_default_branch_name(struct repository *r, int quiet) > if (!ret) { > ret = xstrdup("master"); > if (!quiet) > - advise(_(default_branch_name_advice), ret); > + advise_if_enabled(ADVICE_DEFAULT_BRANCH_NAME, > + _(default_branch_name_advice), ret); > } > > full_ref = xstrfmt("refs/heads/%s", ret); > diff --git a/t/t0001-init.sh b/t/t0001-init.sh > index c49d9e0d38..f11a40811f 100755 > --- a/t/t0001-init.sh > +++ b/t/t0001-init.sh > @@ -830,6 +830,14 @@ test_expect_success 'advice on unconfigured init.defaultBranch' ' > test_grep "hint: " decoded > ' > > +test_expect_success 'advice on unconfigured init.defaultBranch disabled' ' > + test_when_finished "rm -rf no-advice" && > + > + GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME= \ > + git -c advice.defaultBranchName=false init no-advice 2>err && > + test_grep ! "hint: " err > +' > + > test_expect_success 'overridden default main branch name (env)' ' > test_config_global init.defaultBranch nmb && > GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=env git init main-branch-env &&