All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: Junio C Hamano <gitster@pobox.com>
Cc: Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>,
	git@vger.kernel.org
Subject: Re: [PATCH 3/3] init: provide useful advice about init.defaultBranch
Date: Mon, 23 Nov 2020 21:46:09 +0100 (CET)	[thread overview]
Message-ID: <nycvar.QRO.7.76.6.2011232136191.56@tvgsbejvaqbjf.bet> (raw)
In-Reply-To: <xmqqv9dvor27.fsf@gitster.c.googlers.com>

Hi Junio,

On Mon, 23 Nov 2020, Junio C Hamano wrote:

> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
> >> The above may give a valuable lesson to those who want to use one
> >> branch name across new repositories, but it does not tell those who
> >> wanted 'trunk' (to match the project, perhaps github.com/cli/cli,
> >> with which they intend to interact) how to recover from having
> >> already created the 'master' branch.  We may want to add some text
> >> to suggest "branch -M" after giving the advice for the permanent
> >> option.
> >
> > Good point.
> >
> >> Also, it is unclear to those who do not have a good <name> in mind
> >> (or, those who do not care to choose a <name> for themselves), what
> >> <name> they should give to take the "or to silence this warning"
> >> part of the advice.
> >
> > Also a good point.
>
> > I came up with this, which I intend to submit with v2:
> >
> > 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 initial branch name to use in all of your\n"
> > "new repositories (or to suppress this warning), run:\n"
>
> The same issue around "to suppress" is here, though.

Hmm. I would like to believe that readers understand that setting it to
_any_ name would suppress this warning.

> > "\n"
> > "\tgit config --global init.defaultBranch <name>\n"
> > "\n"
> > "Common names are 'main', 'trunk' and 'development'. The initial branch\n"
> > "can be renamed via this command:\n"
> > "\n"
> > "\tgit branch -m <name>\n"
>
> It is very likely that the users are on an unborn branch when they
> see this message and "git branch -m/-M <name>" does not work.  We'd
> probably want to update "git branch" to allow renaming the current
> branch that is unborn.

Ouch, good point, I had not even realized that that does not work. In v2,
I will include a patch that lets it work.

> In the meantime, you could do "git checkout --orphan <name>" here,
> but once <name> exists as a branch that would not work, so...

Careful. We should start thinking about phasing out either `checkout` or
`switch`. The latter was intended to supersede the former with respect to
working on branches, so I would think of phasing out `checkout` and favor
`switch` instead.

That issue aside, `git switch --orphan <name>` is not necessarily a good
UI here. Its documentation talks about creating a new branch, deleting all
tracked files. While it is technically still correct that this command,
when run on an unborn branch, does the same as renaming said branch, it is
highly unintuitive to think about it that way. ("I don't want to create a
new branch, I want to rename the current one! And whoa, delete tracked
files? I don't want to delete _any_ files! What do you mean: there aren't
any tracked files, so none are deleted? Why do you talk about deleting
files, then?")

So in the interest of _reducing_ confusion, I would really, really,
_really_ like to avoid mentioning that command in this advice.

It really is much better to make `git branch -m <name>` work in this
scenario.

Ciao,
Dscho

>
>
> > );
> >
> > Ciao,
> > Dscho
>

  reply	other threads:[~2020-11-23 20:46 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 [this message]
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 ` [PATCH v2 0/4] Add helpful " Johannes Schindelin via GitGitGadget
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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=nycvar.QRO.7.76.6.2011232136191.56@tvgsbejvaqbjf.bet \
    --to=johannes.schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=gitster@pobox.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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.