git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / mirror / Atom feed
From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: Simon Pieters <simon@bocoup.com>
Cc: git@vger.kernel.org
Subject: Re: Rename offensive terminology (master)
Date: Tue, 5 May 2020 23:16:41 +0000
Message-ID: <20200505231641.GH6530@camp.crustytoothpaste.net> (raw)
In-Reply-To: <CAOAHyQwyXC1Z3v7BZAC+Bq6JBaM7FvBenA-1fcqeDV==apdWDg@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 4127 bytes --]

On 2020-05-04 at 17:20:33, Simon Pieters wrote:
> "master" is an offensive term, as it can be interpreted as being
> slavery-origin terminology. See
> https://en.wikipedia.org/wiki/Master/slave_(technology)#Terminology_concerns
> 
> The Python programming language, and various other projects, have
> taken a stance and moved away from offensive terminology including
> "master". See https://bugs.python.org/issue34605
> 
> When different projects using git decide to move away from "master" as
> the name of their main branch, inconsistency ensues between projects.
> See https://github.com/desktop/desktop/issues/6478 (and "Related
> Issues and Projects").
> 
> To avoid offensive terminology and to avoid further inconsistency, I
> think git should use a different branch name than "master" when
> initiating a repo. I don't have a strong opinion, but I like "main"
> since it shares the first two characters and it's shorter.

I've been busy and haven't had much time to respond to this, but I've
gotten some feedback from other people on this issue and so I'll share a
few thoughts.

Others have pointed out that "master" meaning a canonical source may not
share the problematic origins mentioned above.  From feedback I've
received, I get the impression that "master", even though from a
different origin, brings the idea of human bondage and suffering to mind
for a non-trivial number of people, which of course was not the
intention and is undesirable.  I suspect if we were making the decision
today, we'd pick another name, since that's not what we want people to
think of when they use Git.

Clearly we have compatibility concerns to consider though, so if we
decided to make a change, we'd probably want to make it in a 3.0, which
as far as I'm aware hasn't been discussed yet.  I also wondered what
such a change would involve, so I did some research.

It appears that if we made the obvious one-line change to
builtin/init-db.c, we'd have 304 tests that fail, which is about a third
of our test suite.  I haven't examined any of these tests, so I don't
know what would be involved in changing them.  I imagine a project to do
so would involve setting an environment variable in the test setup code
(e.g., MAIN_BRANCH) and replacing instances of "master" with that until
everything works with an alternate value of that variable.  Picking the
new name itself could be deferred until later, and we could choose from
some popular alternatives.

There's also the documentation, which at first glance seems mostly to be
examples, many of which could be changed to any suitable branch name.
There are a large number of those cases and someone would have to audit
them all.

So it looks like this would be a reasonable amount of work for someone
if they decided to pick it up as a project.  Since I have limited free
time and am working on the SHA-256 transition, I won't be doing this,
but if someone did pick it up, I would be happy to do some reviews,
provide feedback, and include a few patches while doing other work in
the area.

I realize there isn't agreement on a direction forward or whether this
is worth doing at all, but since Git usually operates by providing
feedback on an initial set of patches, I thought I'd sketch out what
that might look like for folks who were interested.

I should point out that it's also possible for users who dislike the
current name to use a template to change the default branch name like
so (using the proposed "main"):

  mkdir -p ~/Templates/git
  cp -a /usr/share/git-core/templates/* ~/Templates/git
  echo 'ref: refs/heads/main' > ~/Templates/git/HEAD
  git config --global init.templateDir ~/Templates/git

Then "git init" will set your default branch to "main" instead of
"master".  This does have the weirdness that it claims it's
reinitializing your repository, but otherwise appears to work.  That is
of course orthogonal to changing Git itself, but is an option for folks
who'd like to make a change now.
-- 
brian m. carlson: Houston, Texas, US
OpenPGP: https://keybase.io/bk2204

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 263 bytes --]

  parent reply	other threads:[~2020-05-05 23:17 UTC|newest]

Thread overview: 152+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-04 17:20 Simon Pieters
2020-05-04 17:43 ` Robert P. J. Day
2020-05-04 23:10   ` N6Ghost
2020-05-04 17:45 ` Konstantin Ryabitsev
2020-05-04 18:31   ` Simon Pieters
2020-05-04 17:53 ` Robert P. J. Day
2020-05-04 18:18   ` Randall S. Becker
2020-05-05 23:16 ` brian m. carlson [this message]
2020-06-09 15:16   ` Simon Pieters
2020-06-09 16:02     ` Junio C Hamano
2020-06-09 16:28       ` demerphq
2020-06-09 18:10       ` Johannes Sixt
2020-06-09 19:02         ` Junio C Hamano
2020-06-09 20:52       ` Simon Pieters
2020-06-09 21:03         ` Junio C Hamano
2020-06-09 21:29           ` Simon Pieters
2020-06-10  9:51         ` Robert P. J. Day
2020-06-10 11:16           ` Kevin Swinton
2020-06-10 12:18           ` Don Goodman-Wilson
2020-06-10 16:30             ` Konstantin Ryabitsev
2020-06-14  0:03             ` Sérgio Augusto Vianna
2020-06-14  0:00         ` Sérgio Augusto Vianna
2020-06-14  0:45           ` Junio C Hamano
2020-06-14  0:50             ` Sérgio Augusto Vianna
2020-06-14  6:32               ` Don Goodman-Wilson
2020-06-14  6:34                 ` Don Goodman-Wilson
2020-06-14  8:47                   ` Sergey Lapin
2020-06-14  8:48                     ` Sergey Lapin
2020-06-14 12:07                   ` Sérgio Augusto Vianna
2020-06-16  7:31                 ` demerphq
2020-06-16  8:38                   ` Oleg
2020-06-16 19:33                     ` Elijah Newren
2020-06-17  1:17                       ` Sergey Lapin
2020-06-17  7:45                       ` Oleg
2020-06-16 10:04               ` Alex Smith
2020-06-16 11:29                 ` Konstantin Tokarev
2020-06-16 11:39                   ` Robert P. J. Day
2020-06-16 11:39                   ` Oleg
2020-06-17  7:27                   ` Sergey Organov
     [not found]                 ` <c0c2d9ad-1d67-8ebe-0063-524005ca97fe@whinis.com>
2020-06-16 11:38                   ` Whinis
2020-06-16 12:16                     ` Oleg
2020-06-16 13:30                     ` Konstantin Ryabitsev
2020-06-16 13:55                       ` John Turner
2020-06-16 14:14                         ` Michal Suchánek
2020-06-16 14:29                           ` Whinis
2020-06-16 16:19                           ` Alex Smith
2020-06-16 15:49                         ` Konstantin Ryabitsev
2020-06-16 16:09                           ` Whinis
2020-06-16 14:24                       ` Sérgio Augusto Vianna
2020-06-16 14:27                       ` Oleg
2020-06-16 16:03                         ` Konstantin Ryabitsev
2020-06-16 17:27                           ` Oleg
2020-06-16 17:42                             ` Konstantin Ryabitsev
2020-06-16 18:35                               ` Sergey Lapin
2020-06-16 19:03                               ` Oleg
2020-06-09 16:06     ` Konstantin Ryabitsev
2020-06-09 19:01       ` Don Goodman-Wilson
2020-06-14  0:05         ` Sérgio Augusto Vianna
2020-06-14 19:08           ` brian m. carlson
2020-06-14  8:49             ` Johannes Schindelin
2020-06-14 19:17             ` Sérgio Augusto Vianna
2020-06-15  2:16             ` Taylor Blau
2020-06-15  2:54               ` Sérgio Augusto Vianna
2020-06-09 22:36     ` brian m. carlson
2020-06-16  8:50     ` Michal Suchánek
2020-06-10 21:30   ` Johannes Schindelin
2020-06-10 22:35     ` Edward Thomson
2020-06-10 22:51     ` brian m. carlson
2020-06-11 11:52     ` Michal Suchánek
2020-06-11 11:59       ` Don Goodman-Wilson
2020-06-11 12:52         ` Derrick Stolee
2020-06-11 15:14           ` Junio C Hamano
2020-06-14  2:59             ` Johannes Schindelin
2020-06-15 10:07               ` Michal Suchánek
2020-06-12 13:21           ` Philip Oakley
2020-06-14  0:41             ` Elijah Newren
2020-06-14 10:54               ` Philip Oakley
2020-06-14 12:20                 ` Sérgio Augusto Vianna
2020-06-14 13:58                   ` Don Goodman-Wilson
2020-06-14 14:05                     ` Sérgio Augusto Vianna
2020-06-15  3:52                     ` Andrew Ardill
2020-06-15  4:45                       ` J. Paul Reed
2020-06-15  5:19                         ` Andrew Ardill
2020-06-17  8:27                     ` Michal Suchánek
2020-06-14 18:19                   ` Konstantin Ryabitsev
2020-06-14 18:23                     ` Sérgio Augusto Vianna
2020-06-14 19:04                       ` Konstantin Ryabitsev
2020-06-14 19:08                         ` Sérgio Augusto Vianna
2020-06-14 19:16                           ` Konstantin Ryabitsev
2020-06-14 20:41                       ` Philip Oakley
2020-06-16  7:36                       ` demerphq
2020-06-16  7:43                         ` Michal Suchánek
2020-06-16  8:01                           ` demerphq
2020-06-16  8:59                             ` Michal Suchánek
2020-06-17 19:56                             ` Junio C Hamano
2020-06-17 20:10                               ` Jonathan Nieder
2020-06-17 20:17                                 ` Jonathan Nieder
2020-06-18  7:57                                   ` demerphq
2020-06-18  8:38                                     ` Oleg
2020-06-18 10:17                                       ` demerphq
2020-06-18 15:23                                     ` Konstantin Ryabitsev
2020-06-18  7:40                               ` demerphq
2020-06-18 18:04                                 ` Junio C Hamano
2020-06-14 21:06                     ` Junio C Hamano
2020-06-14 21:15                       ` Eric Wong
2020-06-14 21:39                         ` Junio C Hamano
2020-06-15 18:07                   ` Jonathan Nieder
2020-06-15 18:18                     ` Sérgio Augusto Vianna
     [not found]                       ` <CAAwdEzDgJuoQJAZsrT0piuZPVP6nJTSB9RCbcuXO03-BYTnmOQ@mail.gmail.com>
2020-06-15 19:37                         ` Sérgio Augusto Vianna
2020-06-15 19:50                           ` Alexandru Pătrănescu
2020-06-15 20:44                             ` Elijah Newren
2020-06-15 20:42                           ` Randall S. Becker
2020-06-15  0:34     ` James Ramsay
2020-06-15 21:38     ` Elijah Newren
2020-06-15 21:46       ` Elijah Newren
2020-06-16 21:07     ` ZeeVriend
2020-06-17  7:49       ` Oleg
2020-06-17 20:48         ` ZeeVriend
2020-06-18  8:28           ` Oleg
2020-06-17 20:52         ` ZeeVriend
2020-06-13 23:56   ` Sérgio Augusto Vianna
2020-06-13 23:53 ` Sérgio Augusto Vianna
2020-06-14 14:59 ` Thomas Adam
2020-06-14  8:04   ` Johannes Schindelin
2020-06-14 15:13   ` Michael Felt (aixtools)
2020-06-14  8:27     ` Johannes Schindelin
2020-06-14 15:51     ` George Of The Jungle
2020-06-14 15:20 ` Sérgio Augusto Vianna
2020-06-15  0:02 ` Sérgio Augusto Vianna
2020-06-15 14:39 ` Sérgio Augusto Vianna
2020-06-15 14:39 ` Sérgio Augusto Vianna
2020-06-15 23:15 ` Sérgio Augusto Vianna
2020-06-16  1:00 ` Fang-Pen Lin
2020-06-16  1:38 ` Sérgio Augusto Vianna
2020-06-21 19:50 ` Social Justice Movements [was: Rename offensive terminology (master)] Luke Kenneth Casson Leighton
2020-06-23 23:21 ` Rename offensive terminology (master) Gunnar Liljas
2020-06-24  1:16   ` Whinis
2020-06-24  8:19   ` lego_12239
2020-06-26 10:08     ` Gunnar Liljas
2020-06-26 10:34       ` Oleg
2020-06-14 15:09 Michael Felt (aixtools)
2020-06-15 21:05 frederik
2020-06-16  0:16 Abram Wiebe
2020-06-16  0:23 ` Jonathan Nieder
2020-06-16 12:54   ` Konstantin Ryabitsev
2020-06-16 15:53     ` Sérgio Augusto Vianna
2020-06-17 11:34 Alastair Houghton
2020-06-17 11:49 ` Oleg
     [not found] ` <CAGqqT2w=ntxd6RNkpy175TbgiudUSOc0tAPoDsbjv=4V+73cXw@mail.gmail.com>
     [not found]   ` <CAGqqT2zFkCUTdUnzdp4oTR2cnxBpKeY-EZtxacLLVDsF8Jiekw@mail.gmail.com>
2020-06-17 12:27     ` Zac McChesney
     [not found] <'CAOAHyQyn_ow7_nCJ+Jorr76_=1=_kuBAD1KhqReqVfRQQbmgiw@mail.gmail.com'>
2020-06-26 18:37 ` Neil Stoddard
2020-06-29  8:59   ` Michal Suchánek
2020-08-08  3:46 Jefferson Carpenter

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=20200505231641.GH6530@camp.crustytoothpaste.net \
    --to=sandals@crustytoothpaste.net \
    --cc=git@vger.kernel.org \
    --cc=simon@bocoup.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

git@vger.kernel.org list mirror (unofficial, one of many)

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://public-inbox.org/git
	git clone --mirror http://ou63pmih66umazou.onion/git
	git clone --mirror http://czquwvybam4bgbro.onion/git
	git clone --mirror http://hjrcffqmbrq6wope.onion/git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V1 git git/ http://public-inbox.org/git \
		git@vger.kernel.org
	public-inbox-index git

Example config snippet for mirrors.
Newsgroups are available over NNTP:
	nntp://news.public-inbox.org/inbox.comp.version-control.git
	nntp://ou63pmih66umazou.onion/inbox.comp.version-control.git
	nntp://czquwvybam4bgbro.onion/inbox.comp.version-control.git
	nntp://hjrcffqmbrq6wope.onion/inbox.comp.version-control.git
	nntp://news.gmane.io/gmane.comp.version-control.git
 note: .onion URLs require Tor: https://www.torproject.org/

code repositories for the project(s) associated with this inbox:

	https://80x24.org/mirrors/git.git

AGPL code for this site: git clone https://public-inbox.org/public-inbox.git