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: Jonathan Nieder <jrnieder@gmail.com>, Jeff King <peff@peff.net>,
	Felipe Contreras <felipe.contreras@gmail.com>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>,
	Git <git@vger.kernel.org>
Subject: Re: [PATCH 00/28] Use main as default branch name
Date: Wed, 18 Nov 2020 12:32:14 +0100 (CET)	[thread overview]
Message-ID: <nycvar.QRO.7.76.6.2011181207220.56@tvgsbejvaqbjf.bet> (raw)
In-Reply-To: <xmqqima343vb.fsf@gitster.c.googlers.com>

Hi Junio,

On Tue, 17 Nov 2020, Junio C Hamano wrote:

> Jonathan Nieder <jrnieder@gmail.com> writes:
>
> >> IMHO, though, all of this is orthogonal to question of what the default
> >> is. Unless we are thinking the basename thing would work as a default,
> >> but I don't think that resolves any of the backwards-compatibility
> >> concerns.
> >
> > If we think it would make sense as the *eventual* default, we could use
> >
> > 	[init]
> > 		defaultBranchName =
> >
> > (i.e., an empty string) to request it early.
>
> I am not opposed to the idea to invent a notation that asks for the
> basename behaviour, but I do not think it is a good idea to use "an
> empty string" for that.  I'd rather see us use some consistent
> naming convention to denote any new "non-constant string" thing.

At least in the tests, using the empty string for
`GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME` is equivalent for not setting it at
all, i.e. to trigger the fall-back.

So yes, I totally agree that triggering an interactive prompt by the empty
value is not really a good idea (nor a particularly intuitive behavior).

With your idea to special-case any value starting with a colon, `:ask:`
seems like a saner approach.

Having said that, I would still favor the fall-back `main` over this idea:
it is a much smaller (and less annoying) change of behavior to use a less
loaded name than to change from a previously non-interactive to a
now-interactive operation.

As to using the base name by default: I don't think that is a good idea at
all. Not only doesn't it work when you run `git init` in the root
directory (which some people do, and that's totally okay with me), it also
does not work with any base name that isn't a valid ref name. Try this at
home:

	$ git check-ref-format --branch "My Documents"
	fatal: 'My Documents' is not a valid branch name

So while it is a cute idea, in general it will simply fail, and is
therefore worse than any alternative that does _not_ fail in general.

> What Peff suggested is a more viable possibility, for example.  When
> "[init] defaultBranchAlgorithm = <name>" is set, the fixed string
> "init.defaultBranch" is ignored and the algorithm specified with its
> name is invoked to come up with a name dynamically.  We may start
> with something like 'dirname' as the only supported algorithm but
> that way we would avoid painting ourselves in a corner out of which
> we cannot escape (e.g. we may come up with a better way than the
> basename thing, and we would not have a good way to give it a name
> that is easy to use if we wasted "an empty string" for the basename
> thing).

Indeed. In the spirit of minimizing disruption (as promised in
https://sfconservancy.org/news/2020/jun/23/gitbranchname/), I would like
to stay away from changing the default behavior _that_ much.

My current plan is to implement a warning in `git init` (much like the
`pull.rebase` one, which I thought would raise outcries of frustration,
but to my surprise this did not happen, and `git init` is _a lot_ less
common than `git pull`).

This needs to be done with care, obviously. I haven't looked yet, but I
think there is a chance that `git clone` would implicitly look at
`init.defaultBranch` only to override it later by the name of the remote
primary branch. In that case, we obviously do not want to warn the user
because the `init.defaultBranch` value is not actually used.

Ciao,
Dscho

  reply	other threads:[~2020-11-18 11:32 UTC|newest]

Thread overview: 163+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-12 22:43 [PATCH 00/28] Use main as default branch name Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 01/28] t0060: preemptively adjust alignment Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 02/28] t[01]*: adjust the references to the default branch name "main" Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 03/28] t2*: " Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 04/28] t3[0-3]*: " Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 05/28] t3416: preemptively adjust alignment in a comment Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 06/28] t34*: adjust the references to the default branch name "main" Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 07/28] t3[5-9]*: " Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 08/28] t4*: " Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 09/28] t5323: prepare centered comment for `master` -> `main` Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 10/28] t5[0-4]*: adjust the references to the default branch name "main" Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 11/28] t5503: prepare aligned comment for replacing `master` with `main` Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 12/28] t550*: adjust the references to the default branch name "main" Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 13/28] t551*: " Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 14/28] t55[23]*: " Johannes Schindelin via GitGitGadget
2020-11-13 10:02   ` Ævar Arnfjörð Bjarmason
2020-11-13 14:18     ` Johannes Schindelin
2020-11-16 20:07     ` Junio C Hamano
2020-11-12 22:43 ` [PATCH 15/28] t55[4-9]*: " Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 16/28] t5[6-9]*: " Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 17/28] t6[0-3]*: " Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 18/28] t64*: preemptively adjust alignment to prepare for `master` -> `main` Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 19/28] t6[4-9]*: adjust the references to the default branch name "main" Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 20/28] t7[0-4]*: " Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 21/28] t7[5-9]*: " Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 22/28] t8*: " Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 23/28] t9[0-4]*: " Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 24/28] t9[5-7]*: " Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 25/28] tests(git-p4): transition to the default branch name `main` Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 26/28] t99*: adjust the references to the default branch name "main" Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 27/28] tests: drop prereq `PREPARE_FOR_MAIN_BRANCH` where no longer needed Johannes Schindelin via GitGitGadget
2020-11-12 22:43 ` [PATCH 28/28] Change the default branch name to `main` Don Goodman-Wilson via GitGitGadget
2020-11-13  9:57   ` Ævar Arnfjörð Bjarmason
2020-11-13 14:09     ` Johannes Schindelin
2020-11-16 20:04       ` Junio C Hamano
2020-11-13  0:11 ` [PATCH 00/28] Use main as default branch name Felipe Contreras
2020-11-13 12:55 ` Ævar Arnfjörð Bjarmason
2020-11-13 14:22   ` Johannes Schindelin
2020-11-13 16:13     ` [RFC/PATCH] tests: support testing with an arbitrary default branch (sort of) Ævar Arnfjörð Bjarmason
2020-11-13 19:14       ` Jeff King
2020-11-13 22:00         ` Johannes Schindelin
2020-11-13 22:39           ` Johannes Schindelin
2020-11-13 23:49           ` Ævar Arnfjörð Bjarmason
     [not found]             ` <nycvar.QRO.7.76.6.2011162118060.18437@tvgsbejvaqbjf.bet>
2020-11-18 13:32               ` Ævar Arnfjörð Bjarmason
2020-11-18 14:16                 ` Felipe Contreras
2020-11-20 11:36                   ` Ævar Arnfjörð Bjarmason
2020-11-20 16:00                     ` Felipe Contreras
2020-11-18 15:56                 ` Junio C Hamano
2020-11-19  9:32                   ` Johannes Schindelin
2020-11-19 19:35                     ` Junio C Hamano
2020-11-22 19:07                       ` Johannes Schindelin
2020-11-19 10:46                 ` Johannes Schindelin
2020-11-14  0:25           ` Felipe Contreras
2020-11-13 17:42   ` [PATCH 00/28] Use main as default branch name Felipe Contreras
2020-11-14  6:13 ` Junio C Hamano
2020-11-16 19:52   ` Junio C Hamano
2020-11-17 16:10     ` Johannes Schindelin
2020-11-17 19:09       ` Junio C Hamano
2020-11-18 20:58         ` Johannes Schindelin
2020-11-17 16:12 ` [PATCH v2 00/27] tests: use " Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 01/27] t0060: preemptively adjust alignment Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 02/27] t[01]*: adjust the references to the default branch name "main" Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 03/27] t2*: " Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 04/27] t3[0-3]*: " Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 05/27] t3416: preemptively adjust alignment in a comment Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 06/27] t34*: adjust the references to the default branch name "main" Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 07/27] t3[5-9]*: " Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 08/27] t4*: " Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 09/27] t5323: prepare centered comment for `master` -> `main` Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 10/27] t5[0-4]*: adjust the references to the default branch name "main" Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 11/27] t5503: prepare aligned comment for replacing `master` with `main` Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 12/27] t550*: adjust the references to the default branch name "main" Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 13/27] t551*: " Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 14/27] t55[23]*: " Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 15/27] t55[4-9]*: " Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 16/27] t5[6-9]*: " Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 17/27] t6[0-3]*: " Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 18/27] t64*: preemptively adjust alignment to prepare for `master` -> `main` Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 19/27] t6[4-9]*: adjust the references to the default branch name "main" Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 20/27] t7[0-4]*: " Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 21/27] t7[5-9]*: " Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 22/27] t8*: " Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 23/27] t9[0-4]*: " Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 24/27] t9[5-7]*: " Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 25/27] tests(git-p4): transition to the default branch name `main` Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 26/27] t99*: adjust the references to the default branch name "main" Johannes Schindelin via GitGitGadget
2020-11-17 16:12   ` [PATCH v2 27/27] tests: drop prereq `PREPARE_FOR_MAIN_BRANCH` where no longer needed Johannes Schindelin via GitGitGadget
2020-11-18 11:48   ` [PATCH v2 28/27] tests: run tests omitted by PREPARE_FOR_MAIN_BRANCH Ævar Arnfjörð Bjarmason
2020-11-18 23:56     ` Johannes Schindelin
2020-11-19 19:30       ` Junio C Hamano
2020-11-20 13:09         ` Johannes Schindelin
2020-11-20 18:08           ` Junio C Hamano
2020-11-18 23:44   ` [PATCH v3 00/28] tests: use main as default branch name Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 01/28] tests: mark tests relying on the current default for `init.defaultBranch` Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 02/28] t0060: preemptively adjust alignment Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 03/28] t[01]*: adjust the references to the default branch name "main" Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 04/28] t2*: " Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 05/28] t3[0-3]*: " Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 06/28] t3416: preemptively adjust alignment in a comment Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 07/28] t34*: adjust the references to the default branch name "main" Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 08/28] t3[5-9]*: " Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 09/28] t4*: " Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 10/28] t5323: prepare centered comment for `master` -> `main` Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 11/28] t5[0-4]*: adjust the references to the default branch name "main" Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 12/28] t5503: prepare aligned comment for replacing `master` with `main` Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 13/28] t550*: adjust the references to the default branch name "main" Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 14/28] t551*: " Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 15/28] t55[23]*: " Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 16/28] t55[4-9]*: " Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 17/28] t5[6-9]*: " Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 18/28] t6[0-3]*: " Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 19/28] t64*: preemptively adjust alignment to prepare for `master` -> `main` Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 20/28] t6[4-9]*: adjust the references to the default branch name "main" Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 21/28] t7[0-4]*: " Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 22/28] t7[5-9]*: " Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 23/28] t8*: " Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 24/28] t9[0-4]*: " Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 25/28] t9[5-7]*: " Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 26/28] tests(git-p4): transition to the default branch name `main` Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 27/28] t99*: adjust the references to the default branch name "main" Johannes Schindelin via GitGitGadget
2020-11-18 23:44     ` [PATCH v3 28/28] tests: drop prereq `PREPARE_FOR_MAIN_BRANCH` where no longer needed Johannes Schindelin via GitGitGadget
2020-11-19 23:35     ` [PATCH v3 00/28] tests: use main as default branch name Junio C Hamano
2020-11-17 20:48 ` [PATCH 00/28] Use " Eric W. Biederman
2020-11-17 22:47   ` Felipe Contreras
2020-11-17 23:33     ` Jeff King
2020-11-18  0:07       ` Junio C Hamano
2020-11-18  1:25         ` Jeff King
2020-11-18  2:40           ` Jonathan Nieder
2020-11-18  5:43             ` Junio C Hamano
2020-11-18 11:32               ` Johannes Schindelin [this message]
2020-11-18 15:43                 ` Junio C Hamano
2020-11-19  9:22                   ` Johannes Schindelin
2020-11-18  0:18       ` Felipe Contreras
2020-11-18  1:22         ` Jeff King
2020-11-18  1:45           ` Felipe Contreras
2020-11-18  2:06             ` Jeff King
2020-11-18  2:39               ` Jonathan Nieder
2020-11-18 10:12                 ` Felipe Contreras
2020-11-18  9:04               ` Felipe Contreras
2020-11-17 22:55   ` Junio C Hamano
2020-11-17 23:16     ` Felipe Contreras
2020-11-18  0:10       ` Junio C Hamano
2020-11-18  0:51         ` Felipe Contreras
2020-11-18 23:45     ` Philip Oakley
2020-11-19  0:00       ` Johannes Schindelin
2020-11-19  0:30         ` Philip Oakley
2020-11-19  0:30         ` Peter Hadlaw
2020-11-19  0:44           ` Philip Oakley
2020-11-19  0:55             ` Peter Hadlaw
2020-11-19  1:51       ` Junio C Hamano
2020-11-19 10:35         ` Philip Oakley
2020-11-19 11:10           ` Sergey Organov
2020-11-19 11:50             ` Philip Oakley
2020-11-19 12:33               ` Sergey Organov
2020-11-21 23:01             ` Junio C Hamano
2020-11-22 10:21               ` Sergey Organov
2020-11-22 11:20                 ` Philip Oakley
2020-11-22 13:23                   ` Sergey Organov
2020-11-22 20:18                     ` Philip Oakley
2020-11-22 21:56                 ` Felipe Contreras
2020-11-22 23:54                   ` Junio C Hamano
2020-11-18  2:56   ` Jonathan Nieder
2020-11-18  5:57     ` Junio C Hamano

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.2011181207220.56@tvgsbejvaqbjf.bet \
    --to=johannes.schindelin@gmx.de \
    --cc=ebiederm@xmission.com \
    --cc=felipe.contreras@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=gitster@pobox.com \
    --cc=jrnieder@gmail.com \
    --cc=peff@peff.net \
    /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.