Hi Junio, On Tue, Jun 9, 2020 at 6:02 PM Junio C Hamano <gitster@xxxxxxxxx> wrote: > > Simon Pieters <simon@xxxxxxxxxx> writes: > > > If someone is interested in helping with this, please follow up with > > Don. But I would like to ask again for git mainline to seriously > > consider adopting this change, given the information presented above > > and the ongoing movement against systemic racism. > > I am OK in principle if a future version of Git, when used by a new > user of Git who does not have any custom configuration, wrote a > string other than 'master' in .git/HEAD when "git init" is run. > > Picking a good replacement word to mean the primary branch is > tricky, though. Just having a notion that one is special among > many (i.e. the primary-ness of the thing being named with a word > that will replace 'master') may already be offending to some folks. I find this response not satisfactory: - as far as I can tell, no evidence that "main" offends anyone. - git trying to be neutral by not having any default name seems like a weak response to this issue. - having users have to pick a branch name when initiating a repo increases the burden on users and makes the learning curve steeper for beginners. - git not being opinionated on the branch name doesn't address the inconsistency problem pointed out in the original post. - while git itself could avoid having a default branch name, platforms that use git such as GitHub or GitLab will still likely want a default. I think git can lead the way and make things inclusive, consistent, and not regress on usability. cheers, > Also notice that the qualified statement above talks only about the > plain vanilla experience---the change of the default should be > designed to avoid harming workflows in existing repositories and > tools built around them. > > So, I think there are two separate tasks that can run in parallel. > > * Pick the new default word to replace 'master'; it may turn out > that the Git project choose not to pick any to avoid offending > anybody, in which case "git init" may force end users pick the > default they want to use and offer recording in the ~/.gitconfig > file. > > * Engineering work that uses the word that replaces 'master' by > default (if one got chosen) when not configured, and use the word > the end user chose when configured (iow, allow users to override > the default word that will replace 'master'). This includes > design work to decide what to do in existing repositories (if > there is anything that needs to be done). > > Without digging deeply, I think we are pretty good about basing > things on HEAD (e.g. "git branch -d" protects the branch by seeing > if it is already merged to 'HEAD' or its @{upstream}, and not treats > 'master' any specially), so it might be the matter of teaching "git > init" (it uses 'master' by default) and "git clone" (it tries to use > the name of the branch the HEAD at origin points at, but falls back > to 'master' when the branch name their HEAD points at cannot be > determined). > -- Simon Pieters Bocoup https://bocoup.com/ -- Simon Pieters https://bocoup.com/