Hi Junio, On Sun, 22 Nov 2020, Junio C Hamano wrote: > "Johannes Schindelin via GitGitGadget" <gitgitgadget@xxxxxxxxx> > writes: > > > From: Johannes Schindelin <johannes.schindelin@xxxxxx> > > > > To give ample warning in case we decide to change the fall-back for an > > unconfigured `init.defaultBranch`, let's introduce some advice that is > > shown upon `git init` when that value is not set. > > I know this means well. > > I however doubt "ample warning" before we announce an actual > decision makes user's life any easier in practice, though. I reworded the commit message to make the rationale more obvious: the ample warning is to give users a chance to override whatever is Git's default branch name by configuring `init.defaultBranch`. If they care at all. > Until they know what it will be changed to (if we decide not to change > anything, treat it as changing it to 'master'), they would not be able > to decide if the name is more suitable for their use case. > > I further suspect that their choice will be influenced the most by > the choice made by the projects they most often interact with, and > not by our plan. > > > +static const char default_branch_name_advice[] = N_( > > +"Using '%s' as the name for the initial branch. This name is subject\n" > > +"to change. To configure the name to use as the initial branch name in\n" > > +"new repositories, or to silence this warning, run:\n" > > s/new repositories/all of your new repositories/ as that is the > whole point of using --global option below. Makes sense. > > +"\n" > > +"\tgit config --global init.defaultBranch <name>\n" > > +); > > + > > > +test_expect_success 'advice on unconfigured init.defaultBranch' ' > > + GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME= git -c color.advice=always \ > > + init unconfigured-default-branch-name 2>err && > > + test_decode_color <err >decoded && > > + test_i18ngrep "<YELLOW>hint: " decoded > > +' > > + > > > diff --git a/t/t7414-submodule-mistakes.sh b/t/t7414-submodule-mistakes.sh > > index f2e7df59cf..0ed02938f9 100755 > > --- a/t/t7414-submodule-mistakes.sh > > +++ b/t/t7414-submodule-mistakes.sh > > @@ -30,7 +30,7 @@ test_expect_success 'no warning when updating entry' ' > > > > test_expect_success 'submodule add does not warn' ' > > test_when_finished "git rm -rf submodule .gitmodules" && > > - git submodule add ./embed submodule 2>stderr && > > + git -c init.defaultBranch=x submodule add ./embed submodule 2>stderr && > > test_i18ngrep ! warning stderr > > ' > > It is a bit subtle that this not only tests whatever "git submodule" > test it originally wanted to do but also serves as a test that the > new advice message is squelched by the presence of the configuration. Thank you for catching this. It is a debugging left-over. The real fix for the underlying issue is in the previous commit, which silences the warning when `init_db()` is called via `clone`, as is the case here. I removed it from v2. > > diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh > > index 59bbf75e83..772152320a 100644 > > --- a/t/test-lib-functions.sh > > +++ b/t/test-lib-functions.sh > > @@ -1202,7 +1202,8 @@ test_create_repo () { > > mkdir -p "$repo" > > ( > > cd "$repo" || error "Cannot setup test environment" > > - "${GIT_TEST_INSTALLED:-$GIT_EXEC_PATH}/git$X" init \ > > + "${GIT_TEST_INSTALLED:-$GIT_EXEC_PATH}/git$X" \ > > + -c init.defaultBranch=master init \ > > I wonder if this should be more like > > -c init.defaultBranch=${GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME-master} > > so that tests that want a particular branch name would get what they > want? As is custom with our `GIT_TEST_*` variables, `GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME` overrides `init.defaultBranch`. Therefore, _technically_ what you suggested is not even necessary here. > Eventually we would need to do the s/master/X/ if/when the actual > default change happens. However, _practically_, what you suggested is very helpful, as it will make it easy to find when (if?) we finish the transition to a new fall-back. Thank you for your thorough feedback, Dscho > > "--template=$GIT_BUILD_DIR/templates/blt/" >&3 2>&4 || > > error "cannot run git init -- have you built things yet?" > > mv .git/hooks .git/hooks-disabled >