While the “master” branch is clearly using master in the sense that it asserts control of the other branches in some way.
So IMO, explaining could be done by pointing at the dictionary.
While the “master” branch is clearly using master in the sense that it asserts control of the other branches in some way.
So IMO, explaining could be done by pointing at the dictionary.
Master as in expert, meritorious of command, arbiter of truth.
They all mean the same and you can't have a master's degree without a master copy of information.
Control is exerted only by virtue of being correct.
Compare to other uses in technology that are far more directly related to control, and far less likely to change, e.g. https://en.wikipedia.org/wiki/Serial_Peripheral_Interface
wherein a black musician explores the idea of master/slave ownership in the recording industry.
EDIT: So confusing to me why this was voted down. Please help.
I'm just speculating here -- HN doesn't even allow downvotes to direct responses, so it's not me -- a little more tie-in to the thread might help understand the context and relevance of a music video (HN tends to prefer text over video, and prose/exposition over music). Or maybe there's a bot that downvotes anything with certain words. Or maybe there are one or two people who happened to accidentally downvote because the button was lined up with their thumb when they were scrolling on their phones.
Master/Slave flip-flops, on the other hand, are named for behavior closer to the connotation github is trying to avoid.
And, I'll also add, as a young White child who built and played with master/slave flip-flops, it never occurred to me to associate it with people, slavery, or racism. Maybe if I had been Black it would have been different.
Maybe it's easy to spin this way, but that's not where git's terminology comes from. It originated in a system meant to migrate away from BitKeeper, which did use the master/slave terminology. Citation: https://mail.gnome.org/archives/desktop-devel-list/2019-May/...
[1]: https://web.archive.org/web/20200706203737/https://twitter.c...
In short; no there is no master/slave terminology in Git. The person commenting on the Gnome mailing list was mistaken.
If we scroll to the adjective section, we see three notable definitions:
> 28 directing or controlling: a master switch.
I assume this is the definition you are thinking of?
But I don't agree that this is the definition git is thinking of. I think it's either:
> 27 chief or principal: a master list.
or
> 29 of or relating to a master from which copies are made: master film; master matrix; master record; master tape.
I would agree that the definition you are referring to has racist connotations, but I don't think #27 or #29 does.
Additionally, I don't think sense 29 actually makes sense here. A "master copy" is immutable. Once somebody burns a master record, that's it — you're done. You make copies from that one because it is deemed "correct" in some sense.
But git branches are not immutable; they are able to be added to at any point. The master branch can be interpreted as collating the work done by all of the other branches: non-master branches do some work, then it gets merged back to `master`. Which means... the master branch is coordinating work done in other branches. And, in many git workflows, work on the master branch itself is discouraged, meaning almost all work is done in separate branches and then the master branch is used to accumulate that work, and is the main reference point to see "the current state of things". I don't think it's a stretch to see why the master/slave relationship seems a more fitting sense of "master" than "master copy".
That GNOME mailing list post was retracted the next year[0].
I wrote a summary of the history[1] for Git Rev News, the git developers newsletter. In short, the usage didn't come from BitKeeper, and was intended to mean 'master copy'.
After the article was published, Aaron Kushner from BitKeeper reached out and gave me some more history on the usage of 'slave repository' in that one particular spot in BitKeeper[2]: it was a presentation for a client that was already using master/slave terminology and so the same terms were used in the presentation.
0: https://mail.gnome.org/archives/desktop-devel-list/2020-June...
1: https://git.github.io/rev_news/2020/07/29/edition-65/
2: https://twitter.com/AndrewArdill/status/1350537333292949505
Quick search of definitions of master include (paraphrased slightly for brevity): -(n) person with people working for them -(n) person in charge -(adj) showing great skill -(adj) main/principal -(v) to acquire complete knowledge/skill in something -(v) to overcome (as in one's emotions)
Depending on whether it had a more literal or more abstract genesis, I could see almost all of those variants apply to Master of Science.
Similarly, for master branch -- it could easily be 4 of the 6.
Now add in the fact that these meanings change over time, that they can be coined organically vs. explicitly, and that different early adopters can themselves have different connotations of the meaning in mind.
TLDR: There's nothing simple or clear about the case for removal.
Expecting others to know what's happening in your own head and getting offended when they don't is absolute insanity. This is why we have language standards.
Not knowing how language works and being mad that it changes LIKE IT'S ALWAYS DONE is absolute insanity. Not being able to handle change is a common problem for a lot of humans, but it doesn't mean the change is at fault, it's your ability to cope with differences as they emerge.
Your point? Those changes happen as people in the ENTIRE society agree on them. They don't happen because a small minority or some ridiculous elitist in San Francisco pulled it out of his/her/xer ass one day and decided to dictate to everyone what a word means. If we do not agree then you're essentially creating your own language and communication becomes ineffectual.
Equally, one individual doesn't get to dictate what a word means in their own head and expect others to follow along, while accusing them of being bigoted for not doing it. The minority of offended individuals don't get the power to make these decisions.