git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	Johannes Schindelin <johannes.schindelin@gmx.de>
Subject: [PATCH v2 0/4] Add helpful advice about init.defaultBranch
Date: Mon, 23 Nov 2020 23:20:03 +0000	[thread overview]
Message-ID: <pull.921.v2.git.git.1606173607.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.921.git.git.1606087406.gitgitgadget@gmail.com>

It is our designated intention
[https://sfconservancy.org/news/2020/jun/23/gitbranchname/] to "to explore
changing the name of the first branch created automatically for new
repositories away from ‘master’". Further, we promised that we "will
minimize disruption for Git's users and will include appropriate deprecation
periods".

To that end, we first clarify git init's documentation (a lightly edited
version of Junio's patch
[https://lore.kernel.org/git/xmqqd00a36wc.fsf@gitster.c.googlers.com]), and
then introduce a message giving advice to users running git init that the
fall-back for init.defaultBranch is subject to change, and how to override
Git's fall-back manually.

The beauty of this patch series, if I may say so, is that it does not commit
us to any concrete plan, but opens the door for all options regarding the
default branch name.

Changes since v1:

 * Grammar fix
 * Reworded advice and commit messages
 * test_create_repo already respected GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME,
   but now does so more obviously
 * Allowed git branch -m <name> to rename unborn branches, so that the
   advice actually works

Johannes Schindelin (4):
  init: document `init.defaultBranch` better
  branch -m: allow renaming a yet-unborn branch
  get_default_branch_name(): prepare for showing some advice
  init: provide useful advice about init.defaultBranch

 Documentation/git-init.txt | 11 +++++++----
 builtin/branch.c           |  3 ++-
 builtin/clone.c            |  2 +-
 builtin/init-db.c          |  8 +++++---
 refs.c                     | 25 +++++++++++++++++++++----
 refs.h                     |  4 ++--
 remote.c                   |  5 +++--
 t/t0001-init.sh            | 15 ++++++++++++++-
 t/t1510-repo-setup.sh      |  2 +-
 t/test-lib-functions.sh    |  3 ++-
 10 files changed, 58 insertions(+), 20 deletions(-)


base-commit: faefdd61ec7c7f6f3c8c9907891465ac9a2a1475
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-921%2Fdscho%2Finit.defaultBranch-advice-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-921/dscho/init.defaultBranch-advice-v2
Pull-Request: https://github.com/git/git/pull/921

Range-diff vs v1:

 1:  1518387eaa ! 1:  483e490349 init: document `init.defaultBranch` better
     @@ Documentation/git-init.txt: If this is reinitialization, the repository will be
      -If not specified, fall back to the default name: `master`.
      +Use the specified name for the initial branch in the newly created
      +repository.  If not specified, fall back to the default name (currently
     -+`master`, but that will be changed in the future; The name can be customized
     ++`master`, but that will be changed in the future; the name can be customized
      +via the `init.defaultBranch` configuration variable).
       
       --shared[=(false|true|umask|group|all|world|everybody|0xxx)]::
 -:  ---------- > 2:  8de0c0eb22 branch -m: allow renaming a yet-unborn branch
 2:  42f6940043 = 3:  03314f7ac6 get_default_branch_name(): prepare for showing some advice
 3:  253d6706e6 ! 4:  bccef95391 init: provide useful advice about init.defaultBranch
     @@ Metadata
       ## Commit message ##
          init: provide useful advice about init.defaultBranch
      
     -    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.
     +    To give ample warning for users wishing to override Git's the fall-back
     +    for an unconfigured `init.defaultBranch` (in case we decide to change it
     +    in a future Git version), let's introduce some advice that is shown upon
     +    `git init` when that value is not set.
      
     -    Note: three test cases in Git's test suite want to verify that the
     +    Note: two test cases in Git's test suite want to verify that the
          `stderr` output of `git init` is empty. With this patch, that is only
          true if `init.defaultBranch` is configured, so let's do exactly that in
          those test cases. The same reasoning applies to `test_create_repo()`.
     @@ refs.c: void expand_ref_prefix(struct strvec *prefixes, const char *prefix)
       }
       
      +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"
     ++"Using '%s' as the name for the initial branch. This default branch name\n"
     ++"is subject to change. To configure the initial branch name to use in all\n"
     ++"of your new repositories, run:\n"
      +"\n"
      +"\tgit config --global init.defaultBranch <name>\n"
     ++"\n"
     ++"Common names are 'main', 'trunk' and 'development'. If you merely wish\n"
     ++"to suppress this warning, you can also use the current default branch\n"
     ++"name. The current branch can be renamed via this command:\n"
     ++"\n"
     ++"\tgit branch -m <name>\n"
      +);
      +
       char *repo_default_branch_name(struct repository *r, int quiet)
     @@ t/t1510-repo-setup.sh: setup_repo () {
       	maybe_config "$name/.git/config" core.bare "$barecfg" &&
       	mkdir -p "$name/sub/sub" &&
      
     - ## t/t7414-submodule-mistakes.sh ##
     -@@ t/t7414-submodule-mistakes.sh: 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
     - '
     - 
     -
       ## t/test-lib-functions.sh ##
      @@ t/test-lib-functions.sh: test_create_repo () {
       	mkdir -p "$repo"
     @@ t/test-lib-functions.sh: test_create_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 \
     ++			-c init.defaultBranch=${GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME-master} init \
       			"--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

-- 
gitgitgadget

  parent reply	other threads:[~2020-11-23 23:24 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-22 23:23 [PATCH 0/3] Add helpful advice about init.defaultBranch Johannes Schindelin via GitGitGadget
2020-11-22 23:23 ` [PATCH 1/3] init: document `init.defaultBranch` better Johannes Schindelin via GitGitGadget
2020-11-22 23:40   ` Junio C Hamano
2020-11-23 12:07     ` Johannes Schindelin
2020-11-22 23:23 ` [PATCH 2/3] get_default_branch_name(): prepare for showing some advice Johannes Schindelin via GitGitGadget
2020-11-22 23:23 ` [PATCH 3/3] init: provide useful advice about init.defaultBranch Johannes Schindelin via GitGitGadget
2020-11-22 23:53   ` Junio C Hamano
2020-11-23  2:07     ` Junio C Hamano
2020-11-23 12:28       ` Johannes Schindelin
2020-11-23 18:40         ` Junio C Hamano
2020-11-23 20:46           ` Johannes Schindelin
2020-11-23 21:28             ` Junio C Hamano
2020-11-23 12:26     ` Johannes Schindelin
2020-11-23 12:49   ` Philip Oakley
2020-11-23 20:47     ` Johannes Schindelin
2020-11-23 23:20 ` Johannes Schindelin via GitGitGadget [this message]
2020-11-23 23:20   ` [PATCH v2 1/4] init: document `init.defaultBranch` better Johannes Schindelin via GitGitGadget
2020-11-23 23:20   ` [PATCH v2 2/4] branch -m: allow renaming a yet-unborn branch Johannes Schindelin via GitGitGadget
2020-11-23 23:45     ` Junio C Hamano
2020-11-24  5:47       ` Johannes Schindelin
2020-11-24 20:14         ` Junio C Hamano
2020-11-23 23:20   ` [PATCH v2 3/4] get_default_branch_name(): prepare for showing some advice Johannes Schindelin via GitGitGadget
2020-11-23 23:20   ` [PATCH v2 4/4] init: provide useful advice about init.defaultBranch Johannes Schindelin via GitGitGadget
2020-11-23 23:53     ` Junio C Hamano
2020-11-24  5:57       ` Johannes Schindelin
2020-11-24 20:53         ` Junio C Hamano
2020-12-09 14:47           ` Johannes Schindelin
2020-12-09 22:15             ` Junio C Hamano
2020-12-10 12:12               ` Johannes Schindelin
2020-12-10 23:32                 ` Junio C Hamano
2020-12-10  0:40             ` Felipe Contreras
2020-11-24 15:07   ` [PATCH v3 0/4] Add helpful " Johannes Schindelin via GitGitGadget
2020-11-24 15:07     ` [PATCH v3 1/4] init: document `init.defaultBranch` better Johannes Schindelin via GitGitGadget
2020-11-24 15:07     ` [PATCH v3 2/4] branch -m: allow renaming a yet-unborn branch Johannes Schindelin via GitGitGadget
2020-11-24 15:07     ` [PATCH v3 3/4] get_default_branch_name(): prepare for showing some advice Johannes Schindelin via GitGitGadget
2020-11-24 15:07     ` [PATCH v3 4/4] init: provide useful advice about init.defaultBranch Johannes Schindelin via GitGitGadget
2020-12-10 21:58     ` [PATCH v4 0/4] Add helpful " Johannes Schindelin via GitGitGadget
2020-12-10 21:58       ` [PATCH v4 1/4] init: document `init.defaultBranch` better Johannes Schindelin via GitGitGadget
2020-12-11  0:24         ` Felipe Contreras
2020-12-11  5:47           ` Junio C Hamano
2020-12-11  6:26             ` Felipe Contreras
2020-12-11  5:59           ` Junio C Hamano
2020-12-10 21:58       ` [PATCH v4 2/4] branch -m: allow renaming a yet-unborn branch Johannes Schindelin via GitGitGadget
2020-12-10 21:58       ` [PATCH v4 3/4] get_default_branch_name(): prepare for showing some advice Johannes Schindelin via GitGitGadget
2020-12-10 21:58       ` [PATCH v4 4/4] init: provide useful advice about init.defaultBranch Johannes Schindelin via GitGitGadget
2020-12-11  0:15         ` Felipe Contreras
2020-12-11  1:22           ` Junio C Hamano
2020-12-11  0:47             ` Johannes Schindelin
2020-12-11  2:00             ` Felipe Contreras
2020-12-11 11:36       ` [PATCH v5 0/4] Add helpful " Johannes Schindelin via GitGitGadget
2020-12-11 11:36         ` [PATCH v5 1/4] init: document `init.defaultBranch` better Johannes Schindelin via GitGitGadget
2020-12-11 11:36         ` [PATCH v5 2/4] branch -m: allow renaming a yet-unborn branch Johannes Schindelin via GitGitGadget
2020-12-11 11:36         ` [PATCH v5 3/4] get_default_branch_name(): prepare for showing some advice Johannes Schindelin via GitGitGadget
2020-12-11 11:36         ` [PATCH v5 4/4] init: provide useful advice about init.defaultBranch Johannes Schindelin via GitGitGadget
2021-02-02 21:24           ` SZEDER Gábor
2021-02-02 22:25             ` Junio C Hamano
2021-02-03  5:20               ` SZEDER Gábor

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=pull.921.v2.git.git.1606173607.gitgitgadget@gmail.com \
    --to=gitgitgadget@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    /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).