Re: Replacing "master" reference in git branch names (was Re: Proposal: Replace all references to master/slave in GNOME modules)

On Mon, Jun 15, 2020 at 9:00 AM Bastien Nocera <hadess hadess net> wrote:

Doing some thread grave digging.

Just as an FYI - in terms of happening - I see it very likely that
github and gitlab are all going to be changing the name of the default
branch in git. (I talked to Nuritzi - and she said discussions have
already started and it is very likely that Gitlab will follow suit if
not assured)

At that point, I don't see why upstream git wouldn't follow suit as
the pressure will mount.

While I personally find it unfortunate that we didn't have the
opportunity to lead on the issue - we certainly can lead in

I did find the thread educational at least in terms of the meanings of
'master' and its origins.

Thanks Bastien for leading the discussions on this.


On Sat, 2019-05-04 at 15:18 +0200, Bastien Nocera wrote:
On Sat, 2019-05-04 at 12:32 +0200, drago01 via desktop-devel-list

Master / slave relation is just one of the possible meanings but
in the context of master copy

"an original version of something from which copies can be made:"

this has no connection with slavery at all.

Reference needed. You don't know where it comes from, and you're not
even trying to find where "master copy" takes its name from.

 Words have meanings based on context - trying to make a connection
to slavery where is none nor any intent to do so is actually
disrespectful to whomever named the default branch "master".

First appearance of "master" in git is in a CVS helper script[1]:

Why is that branch called master? Probably because BitKeeper uses
"master" for its main branch:

But maybe this "master" isn't the same one that's in "master/slave"?
See the documentation about
master/slave repositories:

But repositories and branches aren't the same! They are in BitKeeper:

So, yes, the "git master" branch probably isn't even a "master copy"
reference, but a straight up master/slave reference.

Did I get anything wrong there?

A year later, and it turns out I was wrong, but still on the right
path. The email I'm replying to has been quoted in various online
discussions so I thought it would be best for me to update and correct
those statements, if they were ever to be used as references.

I emailed Linus Torvalds recently (the original author of git, though
very quickly not the main developer), and he told me that it was
unlikely that the "git master" branch name was influenced by BitKeeper,
and that "master" was "fairly standard naming" for this sort of thing
and "more likely to be influenced by the CVS master repository".

Petr Baudis is apparently the person that came up with the use of
"master" and "origin" in git,
I picked the names "master" (and "origin") in the early Git tooling
back in 2005. [...] I have wished many times I would have named them
"main" (and "upstream") instead.
"master" as in e.g. "master recording". Perhaps you could say the
original, but viewed from the production process perspective.

I wanted to conclude that, at the end of the day, it doesn't matter
where the name comes from (something that was touched upon a number of
times in the thread). The fact that it has bad connotations, or
inspires dread for individuals and whole communities, is reason enough
to change it.

It's especially the case when the term used is pretty inappropriate to
describe what it is, and the software is flexible enough that we can
very easily change that term without a lot of disruption.

I think that we would do well as a project to make that change for all
the repositories that we host, so we minimise that differences in our
own project.

If anyone wants some inspiration as to what they can do for their
personal projects, codespell can help you follow best practices using
the "usage" dictionary:
which will be available as a Fedora update soon:

There are also tools to rename the main branch in your GitHub projects,
ahead of GitHub doing that by default:


[1]: And this is the commit that made it the default branch:

desktop-devel-list mailing list
desktop-devel-list gnome org

desktop-devel-list mailing list
desktop-devel-list gnome org

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]