Re: [PATCH 0/9] Allow overriding the default name of the default branch
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jun 11, 2020, 14:33 UTC
- Message-ID
- <nycvar.QRO.7.76.6.2006111610000.56@tvgsbejvaqbjf.bet>
- In-Reply-To
- <20200611010720.GA21728@syl.local>
Hi Taylor,
On Wed, 10 Jun 2020, Taylor Blau wrote:
Show 29 quoted lines
> On Wed, Jun 10, 2020 at 09:19:21PM +0000, Johannes Schindelin via GitGitGadget wrote: > > A growing number of open source projects aims to avoid the branch name > > master due to its negative connotation. See [1] for an existing discussion > > on this. The links [2], [3], and [4] describe community-driven ways for > > users to rename their default branches or use template edits to set a new > > default branch name. > > > > [1] > > https://lore.kernel.org/git/CAOAHyQwyXC1Z3v7BZAC+Bq6JBaM7FvBenA-1fcqeDV==apdWDg@mail.gmail.com/ > > > > [2] https://twitter.com/mislav/status/1270388510684598272 > > > > [3] > > https://www.hanselman.com/blog/EasilyRenameYourGitDefaultBranchFromMasterToMain.aspx > > > > [4] https://github.com/ethomson/retarget_prs > > > > By necessity, existing repositories require a lot of manual work to move > > away from that branch name, but it should be much easier for new > > repositories. > > This is (somewhat) orthogonal to the topic here, but I wonder if we > could be doing anything to make this easier for users. > > Could servers remember that a branch has ``moved'' and alert users as > such when they pull? Even better, it would be nice if this alert from > the server could allow clients to automatically rename their refs > appropriately so that this transition is as easy as possible, even for > existing repositories.
I would _love_ to have `git fetch origin master` work, spitting out a message `the main branch name changed to [...] please update your configuration`.
And then maybe an easy way to update the configuration (`git remote set-main-branch <nick> <refname>` might make sense).
As you say, it is orthogonal to this here patch series, but definitely related in spirit because we _want_ to make it easier for users to move away from the current main branch name.
Show 7 quoted lines
> > This patch series allows overriding the branch name being used for new > > repositories' main branch. The main way to do this is the new > > core.defaultBranchName config option. This first patch was contributed by > > newcomer Dan Goodman-Wilson. Thanks for the contribution! > > Welcome, Dan! This is a fantastic first contribution, and I would be > honored to help and move this forward in anyway that I can.
Sorry, my typo: it's Don, not Dan ;-)
Show 5 quoted lines
> I should note that I am technically "out of office" (which normally > wouldn't mean much, but this time means that I am on a road-trip, and so > am only at my computer infrequently). I am catching up on just a few > emails here, but I'll be able to help out more (and would be honored to > do so) once I am really back next Monday.
Well, go back enjoying your road trip! :-P See you on Monday.
Show 17 quoted lines
> > The other patches follow other places where "master" is hard-coded and use > > the new git_default_branch_name() method to consume the config option before > > falling back to "master". > > > > The last patch updates documentation only after the config option is ready > > to apply to all of these scenarios. > > > > This series DOES NOT change the default automatically, but only provides an > > opt-in mechanism for interested users. It also presents a way forward for > > such a transition, if and when we decide to do so. Specifically, the new > > GIT_TEST_DEFAULT_BRANCH_NAME environment variable could be used to update > > test scripts on an individual basis instead of all-at-once. > > Provided that the eventual plan is to seriously evaluate a name other > than "master", I think that this is a good way forward that clears the > way for us to make this change easily, without forcing us to come to a > conclusion on what name will replace "master" today.
That is exactly the intention of this patch series.
I _do_ want to put my weight behind changing the default. Obviously, this will take quite a bit of time (but maybe less than I originally thought, as we are only talking about changing the default for _new_ repositories).
Even if this endeavor fails, though, this here patch series will be good to have.
> For what it's worth, I am completely in favor of abandoning this term. > My colleagues at GitHub (as has been mentioned previously on the list) > are in favor of this as well, and it is my understanding that other > providers feel similarly.
From what I read at https://gitlab.com/gitlab-org/gitlab/-/issues/221164, GitLab is on board, too.
Show 7 quoted lines
> I would be in favor of any non-offensive name that we can reach > consensus on. "trunk" sounds nice to me, but I think that it may cause > problems for non-native English speakers, so perhaps "main" or > "default" would suffice (maybe "main" is better, since it retains muscle > memory for the first two characters without being offensive--at least, > as far as I can tell. If I am wrong, please correct me and we should > consider something else).
My personal preference was "default" on Monday, and "main" ever since.
Show 7 quoted lines
> All of that said, I can't emphasize enough how little I care about > *what* name we replace "master" with, so long as it is (1) replaced with > a non-offensive term, (2) that that change is done uniformly throughout > the "Git Ecosystem" and (3) that the community can reach consensus on > the new term in a respectful, appropriate, and considerate way. I only > provided a few suggestions to get the conversation flowing, although I > suspect that my help isn't needed there.
Indeed. I laid out the patch series in such a way that we should be able to pick a different default main branch name than "main", even if it is my current working hypothesis that this will prevail.
As I said, my preference was "default", and that's how my big patch series looked like, so I know how much work it is to change to a different name (because I changed it to "main"). It is quite a bit of work, but manageable.
Ciao, Dscho