git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Rename offensive terminology (master)

From
Ddemerphq <demerphq@gmail.com>
Date
Jun 18, 2020, 07:40 UTC
Message-ID
<CANgJU+Ut+ANPHud1JQw1Wo+zb37_=EWx-vgap6FGC+T=-dzn4A@mail.gmail.com>
In-Reply-To
<xmqq5zbpv53g.fsf@gitster.c.googlers.com>
On Wed, 17 Jun 2020 at 21:56, Junio C Hamano <gitster@pobox.com> wrote:
Show 10 quoted lines
>
> demerphq <demerphq@gmail.com> writes:
>
> > kind of confusion. Consider how this conversation goes for us:
> >
> > A: "No you need to fetch trunk from the remote, then you need to merge
> > it to your local trunk and then push it to the master trunk".
> > B: "Ok."
>
> Hmph, why isn't the last one "trunk trunk"?

What I described was someone pulling from a box they have code on (which does not have access to the master repository) to the local repo on their laptop so they can push it to the master repo.

We have a master repo at $work. We use a mixture of centralized and decentralized dev models. To get your code into production it must hit the master repository, and it must be in the trunk branch in the master repository. I imagine this is a relatively common configuration, and problem in a professional context. Eg, I might be testing or debugging code on a node that is not allowed write access to the master repo for security reasons, so I need to pull the code from there to my local workstation and then push from there to the master repository. And all too often our people don't use topic branches for this stuff and just hack on their local copy of trunk. So from my point of view what I said was absolutely correct.

Show 6 quoted lines
> > Similarly when the perl project migrated to git we renamed "master" to
> > "blead" to reduce the possibility "master master" confusion.
>
> Or put it differently, "your local master?  remote master?  or the
> primary master?" would be a way to state the phrase A asked in the
> example without renaming the name for the primary branch to 'trunk'.

Well, "primary" is not a terrible replacement term for "master", but it isn't ideal either, as it also suggests the existence of a usable secondary, which isn't a correct mental model (for us). Personally I would eschew "primary" when there isn't a "secondary".

Show 8 quoted lines
> What I am trying to get at is, after changing the name that is given
> by default to the primary branch in a newly created repositories by
> "git init" to 'main' (which I am OK with, and it seems that the
> major projects and repository hosting services will be doing anyway
> with or without getting themselves in this discussion on this list),
> wouldn't we risk the same "master master" confusion caused by and to
> those newer users who learn 'main' is the word given to the primary
> thing?

Yeah I think it will still cause problems. If it was my call I would not choose "main" either. Having said that I do think it is a bit better than "master" however, as it leaves the term "master" unambiguously about repositories, and it leaves the term "main" unambiguously about branches.

Also I would argue it is more etymologically correct. I would argue that the "master" branch in git terminology is NOT really the "master" unless it is in the "master" repository. "master" in the content of "master copy" implies "one" (it has to, what do you do if you have two masters and they aren't the same!), but using it in a distributed sense for a branch name doesn't imply one, it implies many, so it really doesn't make a lot of sense.

> Wouldn't you teach your users to fetch 'main' from the remote, merge
> it to the local 'main' and then push it to the 'main' main?

Unfortunately we call our main repo "main.git", so for my workplace "main" as a default branch name would be suboptimal. We chose "trunk" because "main", "master", "primary" all have these double meanings. On the other hand "trunk" is the standard word for the things that branches grow out of, and in some trees, the branches even can merge back into the trunk![1] Thus I find it weird it isn't perceived as the "obvious" choice to solve this problem. That the bulk of the population chose "main" suggests to me a lack of imagination more than a reasoned and thought through decision.

Anyway, personally I would say "main" and "master" are both bad choices for the default *branch* in a tool that is as workflow agnostic as git is and seems to intend to be. It is relatively unfriendly to scenarios where there is in fact a "main repo" or "master repo" . Many people will in practice use git in a relatively centralized way with at least one repo designated the "main" or "master" repo for the project, and so you end up with two "master" or two "main" things that are very different with very different properties.

So yeah, I would say that "main" is slightly better than "master" but is still suboptimal from a comprehension point of view, and it is downright unhelpful for my $workplace (but I recognize that isn't a problem you should be considering in this discussion.)

Thank you for your time and efforts in dealing with this subject.

cheers, Yves [1] https://www.reddit.com/r/mildlyinteresting/comments/25xkg2/a_tree_branch_grows_back_into_the_tree/

-- 
perl -Mre=debug -e "/just|another|perl|hacker/"
Previous: Konstantin RyabitsevNext: Junio C Hamano
Message 86 of 140 in “Rename offensive terminology (master)”
  1. Simon PietersMay 4, 2020
  2. Robert P. J. DayMay 4, 2020
  3. N6GhostMay 4, 2020
  4. Konstantin RyabitsevMay 4, 2020
  5. Simon PietersMay 4, 2020
  6. Robert P. J. DayMay 4, 2020
  7. Randall S. BeckerMay 4, 2020
  8. brian m. carlsonMay 5, 2020
  9. Simon PietersJun 9, 2020
  10. Junio C HamanoJun 9, 2020
  11. demerphqJun 9, 2020
  12. Johannes SixtJun 9, 2020
  13. Junio C HamanoJun 9, 2020
  14. Simon PietersJun 9, 2020
  15. Junio C HamanoJun 9, 2020
  16. Simon PietersJun 9, 2020
  17. Robert P. J. DayJun 10, 2020
  18. Kevin SwintonJun 10, 2020
  19. Don Goodman-WilsonJun 10, 2020
  20. Konstantin RyabitsevJun 10, 2020
  21. Sérgio Augusto ViannaJun 14, 2020
  22. Sérgio Augusto ViannaJun 14, 2020
  23. Junio C HamanoJun 14, 2020
  24. Sérgio Augusto ViannaJun 14, 2020
  25. Don Goodman-WilsonJun 14, 2020
  26. Don Goodman-WilsonJun 14, 2020
  27. Sergey LapinJun 14, 2020
  28. Sergey LapinJun 14, 2020
  29. Sérgio Augusto ViannaJun 14, 2020
  30. demerphqJun 16, 2020
  31. OlegJun 16, 2020
  32. Elijah NewrenJun 16, 2020
  33. Sergey LapinJun 17, 2020
  34. OlegJun 17, 2020
  35. Alex SmithJun 16, 2020
  36. Konstantin TokarevJun 16, 2020
  37. OlegJun 16, 2020
  38. Robert P. J. DayJun 16, 2020
  39. Sergey OrganovJun 17, 2020
  40. Konstantin RyabitsevJun 9, 2020
  41. Don Goodman-WilsonJun 9, 2020
  42. Sérgio Augusto ViannaJun 14, 2020
  43. brian m. carlsonJun 14, 2020
  44. Sérgio Augusto ViannaJun 14, 2020
  45. Johannes SchindelinJun 14, 2020
  46. Taylor BlauJun 15, 2020
  47. Sérgio Augusto ViannaJun 15, 2020
  48. brian m. carlsonJun 9, 2020
  49. Michal SuchánekJun 16, 2020
  50. Johannes SchindelinJun 10, 2020
  51. Edward ThomsonJun 10, 2020
  52. brian m. carlsonJun 10, 2020
  53. Michal SuchánekJun 11, 2020
  54. Don Goodman-WilsonJun 11, 2020
  55. Derrick StoleeJun 11, 2020
  56. Junio C HamanoJun 11, 2020
  57. Johannes SchindelinJun 14, 2020
  58. Michal SuchánekJun 15, 2020
  59. Philip OakleyJun 12, 2020
  60. Elijah NewrenJun 14, 2020
  61. Philip OakleyJun 14, 2020
  62. Sérgio Augusto ViannaJun 14, 2020
  63. Don Goodman-WilsonJun 14, 2020
  64. Sérgio Augusto ViannaJun 14, 2020
  65. Andrew ArdillJun 15, 2020
  66. J. Paul ReedJun 15, 2020
  67. Andrew ArdillJun 15, 2020
  68. Michal SuchánekJun 17, 2020
  69. Konstantin RyabitsevJun 14, 2020
  70. Sérgio Augusto ViannaJun 14, 2020
  71. Konstantin RyabitsevJun 14, 2020
  72. Sérgio Augusto ViannaJun 14, 2020
  73. Konstantin RyabitsevJun 14, 2020
  74. Philip OakleyJun 14, 2020
  75. demerphqJun 16, 2020
  76. Michal SuchánekJun 16, 2020
  77. demerphqJun 16, 2020
  78. Michal SuchánekJun 16, 2020
  79. Junio C HamanoJun 17, 2020
  80. Jonathan NiederJun 17, 2020
  81. Jonathan NiederJun 17, 2020
  82. demerphqJun 18, 2020
  83. OlegJun 18, 2020
  84. demerphqJun 18, 2020
  85. Konstantin RyabitsevJun 18, 2020
  86. demerphqJun 18, 2020
  87. Junio C HamanoJun 18, 2020
  88. Junio C HamanoJun 14, 2020
  89. Eric WongJun 14, 2020
  90. Junio C HamanoJun 14, 2020
  91. Jonathan NiederJun 15, 2020
  92. Sérgio Augusto ViannaJun 15, 2020
  93. James RamsayJun 15, 2020
  94. Elijah NewrenJun 15, 2020
  95. Elijah NewrenJun 15, 2020
  96. ZeeVriendJun 16, 2020
  97. OlegJun 17, 2020
  98. ZeeVriendJun 17, 2020
  99. OlegJun 18, 2020
  100. ZeeVriendJun 17, 2020
  101. Sérgio Augusto ViannaJun 13, 2020
  102. Sérgio Augusto ViannaJun 13, 2020
  103. Thomas AdamJun 14, 2020
  104. Michael Felt (aixtools)Jun 14, 2020
  105. George Of The JungleJun 14, 2020
  106. Johannes SchindelinJun 14, 2020
  107. Johannes SchindelinJun 14, 2020
  108. Sérgio Augusto ViannaJun 14, 2020
  109. Sérgio Augusto ViannaJun 15, 2020
  110. Sérgio Augusto ViannaJun 15, 2020
  111. Sérgio Augusto ViannaJun 15, 2020
  112. Sérgio Augusto ViannaJun 15, 2020
  113. Fang-Pen LinJun 16, 2020
  114. Sérgio Augusto ViannaJun 16, 2020
  115. Social Justice Movements [was: Rename offensive terminology (master)]Luke Kenneth Casson Leighton, Jun 21, 2020
  116. Gunnar LiljasJun 23, 2020
  117. WhinisJun 24, 2020
  118. lego_12239@rambler.ruJun 24, 2020
  119. Gunnar LiljasJun 26, 2020
  120. OlegJun 26, 2020
  121. Sérgio Augusto ViannaJun 15, 2020
  122. Alexandru PătrănescuJun 15, 2020
  123. Elijah NewrenJun 15, 2020
  124. Randall S. BeckerJun 15, 2020
  125. WhinisJun 16, 2020
  126. OlegJun 16, 2020
  127. Konstantin RyabitsevJun 16, 2020
  128. John TurnerJun 16, 2020
  129. Michal SuchánekJun 16, 2020
  130. WhinisJun 16, 2020
  131. Alex SmithJun 16, 2020
  132. Konstantin RyabitsevJun 16, 2020
  133. WhinisJun 16, 2020
  134. Sérgio Augusto ViannaJun 16, 2020
  135. OlegJun 16, 2020
  136. Konstantin RyabitsevJun 16, 2020
  137. OlegJun 16, 2020
  138. Konstantin RyabitsevJun 16, 2020
  139. Sergey LapinJun 16, 2020
  140. OlegJun 16, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.