6

I think it's a good idea to replace slavery terms with alternatives when they refer to something else, like a database master and slave.

Git is a software version control system with a branch concept. Per default there is a branch is called master. The usual work flow is to create a feature branch (usually named after the intended feature, eg. 'registration') from the master, implement a feature there and merge it back into master when completed.

Since there aren't any slave branches in common use, I was wondering whether the term master in this context actually refers to the slavery concept. Obviously there are lots of meanings referring to different contexts, like a Master of Arts, a masterpiece or the master plan.

10
  • 4
    The analogy could also be to a master and apprentice. Nov 25 '18 at 13:07
  • 3
    There is no doubt that this is partly a throwback to the old "master/slave" terminology used by technologists in the 20th Century, but "master" can also mean simply "principle" or "dominant". Remember there's the master of a ship.
    – Hot Licks
    Nov 25 '18 at 13:12
  • 7
    And the term "master recording" has been used since the invention of the phonograph to refer to the original recording that copies are made from.
    – Hot Licks
    Nov 25 '18 at 18:50
  • 3
    I think "master/*servant*" is also an appropriate analogy. While in some countries slaves were indeed used as servants, elsewhere servants were paid employees. The master/servant analogy works well in technology applications without invoking the more unpleasant slavery connotation. Nov 25 '18 at 22:57
  • 3
    Actually, in git the term master does refer to master/slave. See mail.gnome.org/archives/desktop-devel-list/2019-May/… However, I believe most people do not know this.
    – kaikuchn
    Jun 12 '20 at 7:24
6

Actually, in git the term master does refer to the slavery concept. See this discussion on removing the slavery concept from gnome where Bastien Nocera does a fine job of laying out all the details: https://mail.gnome.org/archives/desktop-devel-list/2019-May/msg00066.html

I'll re-iterate his arguments here in case the above link dies:

That the master branch in git refers to the slavery concept is not obvious, because there is no slave concept in git itself. However, if we look at the origins of git, we know that it was developed to replace BitKeeper. BitKeeper uses master as the name for its main branch, which is probably the reason why git does as well.

Now the question becomes, does the master branch in BitKeeper refer to the slavery concept? BitKeeper does have master/slave repositories, and repositories and branches are conceptually the same thing in BitKeeper. Therefore, yes it does refer to the slavery concept and given that git took the name from BitKeeper, so does git.

2
  • 1
    The link you referenced was a proposal to remove the master terminology. It also says <<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".>> This quote says that it's NOT the master of a master/slave relationship. In my use of Git and GitHub, Master has always meant the official, or released, or main version of the code. There are branches off of the master, not slaves.
    – rajah9
    Jul 7 '20 at 13:10
  • Actually, the master branch in Git does NOT refer to the master-slave terminology according to the guy who coined the term: twitter.com/xpasky/status/1272280760280637441 It refers to the “master recording”. Feb 28 at 23:12
14

The term "master" is often used in mechanics to refer to a device that controls other devices.

A common usage is master cylinder, which is a device that controls subordinate devices in a hydraulic system.

Another common use is master key, a key which will open multiple locks.

The word "master" is used in so many ways in English that I think there is no need to be concerned about the example cited in the question. So long as "master" does not refer to one person's relationship to others, there really is no concern about any past forms of slavery being involved.

1
  • Yes, I agree. You are never going to replace the word "master" -its usages are legion in everyday English - schoolmaster, master chef, etc. And don't forget you need to "master a problem", and play the violin "masterfully". But it might be possible to replace the term "slave" in mechanics contexts - in favour of something like "subsidiary", or "worker".
    – WS2
    Jun 30 '20 at 16:48
0

In Git, the analogy is not between master and slave but rather master and branch.

Here's a helpful picture: from https://gitbookdown.site/branching-git-branch.html

There are several facets that could tilt toward the master/slave analogy:

  • Like a slave, the branch is dependent on the master.
  • The branch is less prominent and does not get released into production code.

There are several facets that steer away from the master/slave analogy:

  • Unlike a slave, the branch starts out as an exact copy of the master.
  • The branch gets merged back into the master, creating a new master
  • Developers (a third party, and neither master nor slave) work on the branches independently and in parallel.
  • Developers meet and collaborate to merge branches and determine the best course of action when branches conflict

This ZDNet article tosses the notion back and forth:

Both Git and GitHub use the term "master" for the default version of a source code repository. Developers fork a version of the "master" to create secondary versions, add their own code to this default version, and then merge their changes back into the "master."

Most detractors and the explanation that often resurfaces in these discussions is that terms like master/slave are now more broadly used to describe technical scenarios than actual slavery and that the word "blacklist" has nothing to do with black people, but the practice of using black books in medieval England to write down the names of problematic workers to avoid hiring in the future.

So perhaps a nuanced answer to the OP's question is: While the evidence points away from a master/slave relationship, Git and many other usages of master are being re-examined, regardless.

Not the answer you're looking for? Browse other questions tagged or ask your own question.