git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 3/3] init: provide useful advice about init.defaultBranch

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 22, 2020, 23:53 UTC
Message-ID
<xmqqft51osnu.fsf@gitster.c.googlers.com>
In-Reply-To
<253d6706e6ab97e71ec012f6de33c75f3e980701.1606087406.git.gitgitgadget@gmail.com>

"Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com> writes:

Show 5 quoted lines
> From: Johannes Schindelin <johannes.schindelin@gmx.de>
>
> 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. 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.

> +"\n"
> +"\tgit config --global init.defaultBranch <name>\n"
> +);
> +
Show 7 quoted lines
> +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
> +'
> +
Show 12 quoted lines
> 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.

Show 11 quoted lines
> 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?

Eventually we would need to do the s/master/X/ if/when the actual default change happens.

>  			"--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
Previous: Johannes Schindelin via GitGitGadgetNext: Junio C Hamano
Message 7 of 57 in “Add helpful advice about init.defaultBranch”
  1. 0/3 Add helpful advice about init.defaultBranchJohannes Schindelin via GitGitGadget, Nov 22, 2020
  2. 2/3 get_default_branch_name(): prepare for showing some adviceJohannes Schindelin via GitGitGadget, Nov 22, 2020
  3. 1/3 init: document `init.defaultBranch` betterJohannes Schindelin via GitGitGadget, Nov 22, 2020
  4. Junio C HamanoNov 22, 2020
  5. Johannes SchindelinNov 23, 2020
  6. 3/3 init: provide useful advice about init.defaultBranchJohannes Schindelin via GitGitGadget, Nov 22, 2020
  7. Junio C HamanoNov 22, 2020
  8. Junio C HamanoNov 23, 2020
  9. Johannes SchindelinNov 23, 2020
  10. Junio C HamanoNov 23, 2020
  11. Johannes SchindelinNov 23, 2020
  12. Junio C HamanoNov 23, 2020
  13. Johannes SchindelinNov 23, 2020
  14. Philip OakleyNov 23, 2020
  15. Johannes SchindelinNov 23, 2020
  16. 0/4 Add helpful advice about init.defaultBranchJohannes Schindelin via GitGitGadget, Nov 23, 2020
  17. 1/4 init: document `init.defaultBranch` betterJohannes Schindelin via GitGitGadget, Nov 23, 2020
  18. 3/4 get_default_branch_name(): prepare for showing some adviceJohannes Schindelin via GitGitGadget, Nov 23, 2020
  19. 2/4 branch -m: allow renaming a yet-unborn branchJohannes Schindelin via GitGitGadget, Nov 23, 2020
  20. Junio C HamanoNov 23, 2020
  21. Johannes SchindelinNov 24, 2020
  22. Junio C HamanoNov 24, 2020
  23. 4/4 init: provide useful advice about init.defaultBranchJohannes Schindelin via GitGitGadget, Nov 23, 2020
  24. Junio C HamanoNov 23, 2020
  25. Johannes SchindelinNov 24, 2020
  26. Junio C HamanoNov 24, 2020
  27. Johannes SchindelinDec 9, 2020
  28. Junio C HamanoDec 9, 2020
  29. Johannes SchindelinDec 10, 2020
  30. Junio C HamanoDec 10, 2020
  31. Felipe ContrerasDec 10, 2020
  32. 0/4 Add helpful advice about init.defaultBranchJohannes Schindelin via GitGitGadget, Nov 24, 2020
  33. 1/4 init: document `init.defaultBranch` betterJohannes Schindelin via GitGitGadget, Nov 24, 2020
  34. 4/4 init: provide useful advice about init.defaultBranchJohannes Schindelin via GitGitGadget, Nov 24, 2020
  35. 2/4 branch -m: allow renaming a yet-unborn branchJohannes Schindelin via GitGitGadget, Nov 24, 2020
  36. 3/4 get_default_branch_name(): prepare for showing some adviceJohannes Schindelin via GitGitGadget, Nov 24, 2020
  37. 0/4 Add helpful advice about init.defaultBranchJohannes Schindelin via GitGitGadget, Dec 10, 2020
  38. 4/4 init: provide useful advice about init.defaultBranchJohannes Schindelin via GitGitGadget, Dec 10, 2020
  39. Felipe ContrerasDec 11, 2020
  40. Junio C HamanoDec 11, 2020
  41. Felipe ContrerasDec 11, 2020
  42. Johannes SchindelinDec 11, 2020
  43. 2/4 branch -m: allow renaming a yet-unborn branchJohannes Schindelin via GitGitGadget, Dec 10, 2020
  44. 1/4 init: document `init.defaultBranch` betterJohannes Schindelin via GitGitGadget, Dec 10, 2020
  45. Felipe ContrerasDec 11, 2020
  46. Junio C HamanoDec 11, 2020
  47. Felipe ContrerasDec 11, 2020
  48. Junio C HamanoDec 11, 2020
  49. 3/4 get_default_branch_name(): prepare for showing some adviceJohannes Schindelin via GitGitGadget, Dec 10, 2020
  50. 0/4 Add helpful advice about init.defaultBranchJohannes Schindelin via GitGitGadget, Dec 11, 2020
  51. 2/4 branch -m: allow renaming a yet-unborn branchJohannes Schindelin via GitGitGadget, Dec 11, 2020
  52. 1/4 init: document `init.defaultBranch` betterJohannes Schindelin via GitGitGadget, Dec 11, 2020
  53. 3/4 get_default_branch_name(): prepare for showing some adviceJohannes Schindelin via GitGitGadget, Dec 11, 2020
  54. 4/4 init: provide useful advice about init.defaultBranchJohannes Schindelin via GitGitGadget, Dec 11, 2020
  55. SZEDER GáborFeb 2, 2021
  56. Junio C HamanoFeb 2, 2021
  57. SZEDER GáborFeb 3, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.