1. 92
  1.  

  2. 44

    Setting aside feelings one way or the other, posting this because the default behavior changing is bound to bite somebody in the next month or two. If anybody knows what minor version is going to start doing this, post here so we can know what to check git --version against. It appears this is landing prior to git 3.0.

    Quoting from the mailing list discussion:

    So we need to make sure existing users know that they can add:
    
    [init]
        defaultBranch = master
    
     to their ~/.gitconfig if they want the legacy behavior
    

    In case you need to support legacy scripts or muscle memory.

    git config --global init.defaultBranch master may also work, but haven’t tried it on my machine.

    1. 19

      [init] defaultBranch = master

      Adding this to my gitconfig now to avoid future issues…

      1. 13

        Wait, I thought that init.defaultBranch was the compromise, to avoid renaming the default branch in Git, while still allowing those who feel uncompfortable by it to avoid it as much as possible?

        Are there any statistics or scientific attempts to qualify how much of a problem this is? It’s probably my fault, but I find it hard to imagine that if someone is in the need for version control, will learn all the basics up until the point where they see the word “master”and give up, not because of direct racism, but racism by association.

        Non-technical issues like these are never easy, but there should at least be some discission where one position is designated as the morally superior before a word is said.

        1. 27

          main is shorter, simple, and has no negative connotations whatsoever. This is an easy thing to do and it makes people feel welcome

          1. 21

            Semi-serious question: How do we know that? I’m going to guess that the people who decieded to use “master” in version control systems didn’t do this out of mallace, but just because the phrase seemed appropriate. So how can we be sure that main won’t eventually fall our of favour? I remember that at the beginning of 2015 Elementary OS wanted to release a new version called “Isis”, afaik in reference to the egyptian god, but then the terror group in ISIS gaiend power and a more or less inncoent name became very controversial.

            And does “shorter” and “simpler” even matter? Almost everyone uses autocompletion in some form or another, and it’s not something you use as often as “git commit”.

            1. 17

              If we knew the future the world would be a better place ;) In the absence of perfect prescience, we will have to be guided by the voices of today.

              1. 5

                Ok, fair enough, but let’s twist the question again: How do we know that everyone has a seat at the table? What if there is a language or a culture where main has a different meaning (a simple but unoffensive example is in Germany, where Main is a river)? Apparently there were no black people, or people “decendents of slavery” to be exact (because not all back people were slaves) were present when the term “master” came into use, to correct this issue early on. But then on the other hand, if I remember correctly, make still uses tabs instead of general indentation, beacuse Stuart Feldman didn’t want to disrupt his userbase of at most a few dozen users.

                1. 3

                  Of course, given that “git” itself is an offensive term in the UK, I insist that the whole project must be immediately renamed.

                  1. 6

                    false equivalence bad-faith troll

                  2. 2

                    What are you hoping to achieve with this thought experiment?

                    1. 5

                      I intend to show that the argument is internally inconsistent. We cannot simultaniously assume a kind of standpoint theory, by which there is always a posibility that a term is (objectivly) wrong, but at the same time be able to suggest an (objective) replacment for a (subjective) offense.

                      A simpler understanding, that does not run into these problems is that offense is determined by intent, not by the nature or the etomology of a word.

                      At the same time, I don’t think that people advocating for this change are arguing on this level. Any reference to this logic is handwaving, but the motivation appears to be something else, which I would either guess to be some kind of at best false pragmatism or at worse opportunism.

                      1. 2

                        (I apologize if I misinterpret your comment, English is not my first language and I am trying to understand your comment)

                        a group X used a terminology to undermine/subjugate a group Y in the past, the group X is much smaller now but it still exists.

                        the change happening here is removing that specific terminology because group Y today is reminded of the past treatment.

                        and is your argument is that, since we don’t know that the new terminology wasn’t used to undermine any group in the past, the change is fruitless as we might need to change it again?

                        or that since the terminology was also used in other contexts by people not in group X, it should be okay to continue using it?


                        As I am neither a member of group X or group Y, my opinion is that if the change results in more people being comfortable using tool, we should definitely do it.

                        1. 4

                          First of all, and I don’t know why this has to be said: Slavery didn’t exist because it was called slavery, it existed because the society reproduced the conditions under which people were slaves.

                          and is your argument is that, since we don’t know that the new terminology wasn’t used to undermine any group in the past, the change is fruitless as we might need to change it again?

                          or that since the terminology was also used in other contexts by people not in group X, it should be okay to continue using it?

                          I explained the further in a sibling comment, that on the terms of the argumentation, it is imposible to say that main is better than master, because perspectives cannot be compared or have any common point of reference. Since this discussion is not based on any hard evidence, we cannot derive any emperical conclusion like “this will make more people comfortable”, since we are talking about idealized, aggregated perspectives, produced by a worldview that has ever increasing problems to explain anything that is happening, hence the focus on such things like “master/main”.

                      2. 4

                        I find it not to be only a “thought experiment”. The questions are on point. No data (if any, I would like to see it) to back up claims that people are offended by these words results in such major changes for everyone. At least that needs to be pointed out.

                        1. 2

                          OP is leaning back in their armchair imagining the theoretical universe in which the broader German community is coping with the upsetting rivered associations with “main” as the new default git branch. I suggest they apply their philosophical leanings to the actual real world in which it turns out a sizeable community of real live humans prefer to dispose of master/slave language where possible in discussions with their terminal.

                          1. 4

                            Please re-read my comment, the “main” example was just to give an example due to limited perspectives, we cannot know what our actions or decisions mean from other perspectives. I explicity said it was harmless, but if you want something better, consider @caleb’s example.

                            I suggest they apply their philosophical leanings to the actual real world in which it turns out a sizeable community of real live humans prefer to dispose of master/slave language where possible in discussions with their terminal.

                            How can you know that? Where are the statistics? Where are the polls? How did we figure this out? When did we figure this out? This is just postulated, and nobody goes into it. And I have a hunch that this is because if you were to actually find out what most people belive, that it would not be what you want to think they do. But that’s just by unprooven hypothesis.

                            1. 2

                              I’m not going to debate you because you’re displaying a preference for thought experiment over an engagement in reality, which not only suggests a closed mind, but also that you simply don’t have sympathy for the real issue at hand. @caleb’s “example” is a much less veiled form of the same type of trolling you’re unwilling to let go of.

                              You wish to model reality, but no modeling is required to understand this issue. We’re here because we’re here. This is a real conversation which is taking place in the real world for several years now. You’re attempting to place the burden of proof of the existence and size of a community on that exact community itself, which is existentially large and significant enough to make the issue stick broadly across numerous open source projects, GitHub, and now the git project itself.

                              This is just completely illogical. If you want to go do your own research and develop some set of quantitative metrics in an attempt to quantize a complex social issue which is unfolding as we speak, then go ahead and do so. It’s not going to change what’s happening.

                              1. 4

                                As already stated, I just want to explain why the position is incoherent, and as everyone knows, ex falso, quod libet. You have already dismissed everyone who is questioning it as a troll, declare the issue as obviously setteled and then proceed to moralize it by claiming those who don’t agree have no sympathy for the real issue at hand – but of course, we are have a closed mind. I am honestly disgusted by this kind of behaviour, this dishonesty and the smug superiority you emit. Please stop and consider what you are doing, and why you feel the need to behave the way you do.

                                1. 1

                                  You wish to model reality, but no modeling is required to understand this issue. We’re here because we’re here. This is a real conversation which is taking place in the real world for several years now. You’re attempting to place the burden of proof of the existence and size of a community on that exact community itself, which is existentially large and significant enough to make the issue stick broadly across numerous open source projects, GitHub, and now the git project itself.

                                  This could be accomplished by a small group of PR professionals who don’t actually care about racism, but recognize a potential upside for their company while the cost of changing a default is distributed throughout the open source community.

                                  The real story here is that GitHub made the change unilaterally, and git followed suit. One might consider the depth of anti-racist feeling that would drive a company to make this change while continuing to partner with ICE, DOD, and police departments around the country.

                      3. 6

                        i was there when we named elementary OS Isis and i was also there when we named it Freya.

                        from what i remember, no one was concerned about optimizing the name, we were more concerned about not hurting people who themselves or their families had been impacted by Isis.

                        I am 110% proud of our decision.

                        (taking the elementary OS dev hat off)

                        I found main to be a better choice, i am used to using mainline at work now (because of perforce legacy repos) and don’t even notice a difference.

                        1. 2

                          So how can we be sure that main won’t eventually fall our of favour

                          Then we just change it again?

                          1. 3

                            But considering that the same would apply again, ad infinitium, we cannot say we will ever find a good name. And at then, what is the point? Either we go on forever renaming every time someone complains, at technical expense, or we claim that this renaming is more important than others, because one offended group is more important than others, which I don’t think that the people arguing for this want to argue.

                            1. 5

                              we cannot say we will ever find a good name

                              I don’t think anyone is claiming that main will be the perfect name forever. If at some point in the future main becomes offensive, then we could change it again. I haven’t found any evidence that would lead me to believe that git would be changing the branch name on a monthly or yearly basis, so I don’t think there is a high cost here.

                              forever renaming every time someone complains, at technical expense

                              Uh, we work in software. Everything changes all the time at technical expense. Updating your dependencies could break your app (even if the API doesn’t change), products get deprecated, new products get created. I don’t see this much backlash against Apple changing their CPU architecture and that’s gonna cause a lot more trouble than this change.

                              But that makes sense because the real issue here is ideology, wokes vs anti-wokes. We’re just pretending it’s technical. I think it’s fine to argue the ideological issue. I don’t think people are automatically racist for not liking the change. I just don’t think the technical argument holds much water.

                              1. 1

                                I don’t know how Apple is going to handle the migration, but I suppose they have tooling to make it easier, the kind of tooling Git lacks.

                                Those conversations might also be more private.

                                As for tech expenses, you’re correct in that everything comes at an expense.

                                Is it therefore justified to impose more of it on others?

                                Maybe that’s an important ideological question as well?

                                This doesn’t have to be all about how git has a master branch to signify “the master copy”.

                                See also: how master hosts usually perform more work than slave hosts (to counter American slavery connotations) or how offensive “blanket exception handling” and “collaborators” should be (in cultures treated with “less thought” than American slavery).

                          2. 1

                            Changing it alone is more welcoming than any harm from the word itself.

                            1. 1

                              This I don’t get. Could you explain what you mean?

                          3. 32

                            Master is more precise, traditional, doesn’t break anything, and has no negative connotation in this context, or most other contexts.

                            Main does not make me feel welcome, it makes me feel like I’m being forced to bend the knee to a mob that can’t or willfully choose to not understand English. It makes me embarrassed to be in this field. Admitting that feeling means I deserve to feel bad anyway though, so whatever.

                            1. 12

                              Tradition should not hold back progress. There are more descriptive names out there. For example allow/deny is better than black/whitelist, parent/child is better than master/slave. I understand people are resistant to change and humans are creatures of habit (energy conservation) but this is a simple name change where there’s more advantages than not and people will get over it after a few weeks.

                              1. 20

                                parent/child is better than master/slave

                                Not if it brings up memories of child abuse.

                                1. 4

                                  Sorry about your child abuse, or are you simply virtue signaling? If you feel strongly about it then you can message the maintainers of the software you use to alter the names, otherwise why bring up a “whataboutism” argument.

                                  1. 5

                                    That you consider it valid shows the futility of choosing names to please everybody.

                                    The master slave relationship is not the same as the primary secondary relationship, nor the parent child relationship. Sometimes master slave actually describes the subject matter.

                                    And sometimes the master copy of some source code should live on the master branch. Many people only commit to master when they are certain of their work, while they use another branch as their main branch. Kind of presumptuous, calling the default branch the main branch, isn’t it.

                                2. 15

                                  Sure, but it should hold this back.

                                  1. 1

                                    Sure, but it should hold this back.

                                    Not when there are demonstrably better names that are not, traditionally, associated with one-sided power dynamics, it shouldn’t.

                                    If “main” makes you feel less welcome, then there’s something wrong with your capacity for feeling.

                                    1. 7

                                      Hold on, it’s not possible to win an argument about inclusiveness by saying that the other person is broken. Or even pretend that there is only one way to view things. We have to learn to communicate better and see the other person’s point of view.

                                      1. 1

                                        No, @yawpitch is quite on-point. This isn’t about “winning an argument”. Those with any decent capacity for nuance, critical thought, and self-reflection will note that “main” draws fewer negative associations than “master”. Those with unconfronted reactionary cultural/emotional anger stemming from the strawman “woke mob” fantasy will come up with a contorted bad-faith “arguments” a such as “the word ‘main’ makes me feel unwelcome”. You gotta call bullshit when you see it.

                                        1. 3

                                          Maybe. Or it’s also an opportunity to learn. People can have different points of view, and still, be good people. <3

                                        2. 0

                                          First off, this isn’t an argument about inclusiveness, it’s at best a debate about semantics, and since there’s no cognizable or remotely valid viewpoint that can distinguish “master” in the “traditional” sense being described above from its root association with human bondage, it’s not even a very sensible debate. No such valid viewpoint, with no pretense involved, exists: the word has several long-standing definitional meanings and the one involved here is fundamentally and absolutely inseparable from the notion of master / slave dynamics by which it derives any meaning whatsoever to the cause of version control. To try and empathize with any countering point of view is absurd … it’s a word, its meaning is simply a fact, and that fact is not open to meaningful and intellectually honest dispute, without descending into the interminable Hell of “alternative facts”.

                                          The semantic dispute thus settled the only question, then, is is the community, right now, okay with that semantic baggage being carried further forward, or is the community prepared to make a break from that historical association? Personally I’d say that’s also a moot point … it’s been de facto settled by Github and the very reason the patch detailed above exists is because the network pressures of the downstream are driving an upstream change because YES the community is ready to not be exclusive any longer.

                                          What remains is for individuals who are not comfortable with that linguistic and cultural evolution to, frankly, grow up and un-break themselves of their lack of empathy … the point of view of the “tradition” argument has been heard to death, it does not need more empathy heaped upon it.

                                          I stand by my point: if you – and I’m using the most generally inclusive meaning of “you” here – feel that you’re somehow more included by “master” and less included by “main” then something is deeply and dangerously flawed with your emotional apparatus. The only colorable arguments against this minor default change are inertial, as in you either don’t want to invest the time required to update existing repos or you don’t want to engage in the effort needed to reprogram some muscle memory for future ones. Those are the available arguments. They’re just not very good ones.

                                          1. 5

                                            Maybe OP doesn’t know everything you do. Git is being used all over the world, in different types of cultures, and this seems like an American problem at heart. If they feel like this change is being trusted upon them, and on top of that they get vilified when they want to talk about it, it’s not really helpful to generate a common understanding. It doesn’t mean that they are broken, they just have a different context from you.

                                            I feel like a better line of discussion would be to give out concrete instances where this word has been a problem. Or actually, even ask why OP feels like they do.

                                            1. 4

                                              OP made their context quite clear with their phrasing:

                                              Master is more precise

                                              … only when understood as an explicit reference to master/ slave dynamics …

                                              traditional

                                              … which is automatically a claim of being “inside” the dominant cultural context …

                                              doesn’t break anything

                                              … privileges the idea that the status quo isn’t already broken, which it is if you find the master / slave connotation at all problematic …

                                              and has no negative connotation in this context

                                              … no negative connotation to OP; the phraseology has an extremely negative connotation to me, and I am most certainly not alone: you keep suggesting I need to apply more empathy to someone who’s denying my very existence…

                                              or most other contexts.

                                              … can someone please enumerate the many and varied contexts in which master / slave has no negative connotation from the perspective of anyone who has been a slave, or whose family history was affected by slavery. I can affirm that I’ve personally got a great many friends in a great many contexts – including well outside of America – who see the problem with “master” as default.

                                              I don’t need to understand why OP feels like they do … I need only identify that the feeling itself is unworthy of consideration in the political choice at hand… it is impossible for any rational being that both understands English and is armed with minimal historical context to see “main” as more exclusionary and historically problematic than “master”, hence we need not engage with any such view that happens to be espoused at all, except to point out its obvious and manifest flaws.

                                              1. 1

                                                I guess I didn’t get notifications for this continuing discussion. I’m on mobile and also don’t really care to keep this going, but I do want to clarify that I mean more precise in the sense of “master recording” or “master copy”, as in the source of truth from which copies are derived.

                                                I can’t tell if you already read it that way, and believe that usage to itself be derived from slavery, or just think I’m directly defending the master/slave dynamic.

                                                1. 3

                                                  Both of those usages — arguably they’re the same usage — rely in their entirety on the master / slave semantic for their meaning. Indeed no semantic value can be extracted from either without knowing that relationship exists, at least implicitly. A replication master makes no sense without duplication slaves, and that’s exactly what we called them in the bygone days of glass / nickel masters in optical pressing and tape in replication farms. Even before tape and indeed wax cylinders the master mold of foundry and pottery days was there to be used to direct the toil of those making exact copies, as it were, slavishly, with no independent freedom allowed in the work. They’re utterly inextricable from the historical institution they took as their model.

                                                  As I’ve said before there’s is not now, nor ever can be, any legitimate argument to be made that separates usage in version control from the historical idea of the privileged master and the slave(s) that follow.

                                                2. 0

                                                  it is impossible for any rational being that both understands English and is armed with minimal historical context to see “main” as more exclusionary and historically problematic than “master”, hence we need not engage with any such view that happens to be espoused at all, except to point out its obvious and manifest flaws.

                                                  I’m totally with you, though based on the extent of some of the involved philosophical gymnastics into symbology, original intent, and sociology on the “other side” thrown in the face of the simple actual sizeable live human community looking to stop promoting “master” I’ve gotta conclude that these folks are ultimately motivated by a certain emotional bias…

                                      2. 7

                                        In many uses of master/slave in computer related things, it is actually a poor analogy. Often a “master” does all the work with the “slave” sitting idle waiting to step in only if needed, Other terms like prime and replica can be a better fit anyway. parent/child has a connotation of the parent spawning the child which works for, e.g. processes but not in other cases. In the case of git, there isn’t even a corresponding “slave” concept, only “branches” - In my mind, I wouldn’t even connect that use of the term master to slavery, but I’m not American. In any case, the subversion term “trunk” was better to begin with.

                                        1. 3

                                          Trunk is a good term. I can understand a change to Trunk.

                                          In the book 1984, a major plot point is the reduction of language to reduce the complexities of expressable thought. Words meaning only one thing, like master only meaning “of a slave,” is an example of this language reduction.

                                          1. 3

                                            The master name in git was derived from master/slave terminology, see https://mail.gnome.org/archives/desktop-devel-list/2019-May/msg00066.html

                                            The name trunk like in SVN is ok but I still think calling it main is better overall because of it’s shortness and detachment from it’s controversial origin.

                                            1. 2

                                              Saw, am very not convinced by his sources that it is master slave, even in bitkeeper.

                                              Trunk is much better than main. One is descriptive.

                                          2. 1

                                            Principal/agent makes a lot more sense than parent/child for workflows.

                                            1. 2

                                              Not bad, certainly makes sense under certain delegation workflow contexts.

                                          3. 1

                                            Master is not more precise.

                                          4. 15

                                            As we’ve seen, you can never make people feel welcome–you can only make it more or less costly to join.

                                            1. 13

                                              the spanish main was the site of centuries of brutal colonialism

                                        2. 43

                                          To echo my thoughts: I think this change is welcome. As I see it, there’s no downside to changing this default.

                                          1. 55

                                            I consider the imposition of a distributed cost across the entire git-using ecosystem a downside. This is not a one-sided tradeoff.

                                            1. 26

                                              I know I’ve personally hard coded the word “master” in at least a few scripts. Fixing those scripts won’t just be a matter of changing “master” to “main” either; I’ll have to add a bunch of logic to figure out what the default branch name is for a particular repo. It’s also not clear what to do with old repos; do I keep the name “master” for old repos and adapt the word “main” for new repos? Or do I rename the master branch to “main” for all my old repos and possibly break things?

                                              I’m not really opposed to the change. I’m usually happy to change language to move society into a less casually racist/sexist/whatever direction. But this change will make things quite a bit more difficult, on a technical level, for millions of users, so I sure do hope the benefit is worth it. (Which, to be clear, it might. I’m in no position to judge. In my native language, our word for “master” doesn’t have history it apparently has in the US.)

                                              1. 25

                                                change language to move society into a less casually racist/sexist/whatever direction

                                                I agree, getting rid of casually racist/sexist/asshole terms is a good thing. But, this whole situation implies that the word ‘master’ is inherently racist, which it is not. To illustrate, let’s make the exact same argument about the word ‘blanket.’ I’m Native American, many of my ancestors suffered and died to the disease smallpox, sometimes believe to be intentionally spread using infected blankets now known as ‘smallpox blankets’ 0. Now, intentionally spreading disease with the intent on decimating a population is extremely racist, bordering on genocide. Whether it actually happened or not is beside the point, it’s ingrained in popular culture (in the US) as something that probably did happen to some extent. Now, for some, the word ‘blanket’ can bring up “memories” of their ancestors suffering (or even their own ongoing suffering), but does that make the word ‘blanket’ racist?

                                                our word for “master” doesn’t have history it apparently has in the US

                                                It doesn’t here either. The word has many uses, most of which range from neutral to positive (master copy, masters of science, etc.). Referring to someone as a master in certain contexts, such as when a student of martial arts, is a sign of respect.

                                                Frankly, I have enough garbage to deal with, adding another headache on top of it just to satisfy some ‘woke’ assholes doesn’t appeal to me. Censoring language is a bad mechanism for suppressing racism, and is IMO more detrimental to society than the problems it’s seeking to solve.

                                                1. 12

                                                  “Master” is often paired with “slave” in CS and IT (busses, DB replicas, etc.), which is why it’s on the list of exclusionary terms. Git doesn’t use “slave” in relation to its master, but given the prevalence of “master/slave” wording, why continue using a term that makes some people uncomfortable?

                                                  1. 14

                                                    why continue using a term that makes some people uncomfortable?

                                                    Because the shift imposes a distributed cost on the entire git-using ecosystem. Examples: every forge site needs to build out this feature instead of others, everyone needs to check their scripts, etc. Imposing distributed costs needs to be done very carefully, because even a couple of hours × a lot of people = a lot of person-hours spent.

                                                    This is an expensive move to make. For it to be worth doing, the benefit of the change needs to be worth the effort spent and I have seen no serious attempt to quantify this.

                                                    1. 20

                                                      Does it actually make people uncomfortable? That’s besides the point of my argument, which is that words have flexible meanings and are extremely context dependent. Censoring a word because when used in a specific context (in this case, specifically human slavery) it can have a negative meaning simultaneously erases innocuous uses of the word, and strengthens the negative connotations. By actively trying to suppress usage of a word, you make the word more powerful in it’s negative usage.

                                                      But really, all you need to do is actually read the last paragraph to know why I disagree with this. Changing 15 years of convention for something like this is needless headache.

                                                      1. 5

                                                        If it makes people uncomfortable, we could probably confirm that over in music performance and production, where “master” (master recording, remastered) is a frequently-used term and racial diversity is slightly less of an issue. My mediocre research skills haven’t found anything either way yet. Maybe we should just ask some Black artists.

                                                        1. 5

                                                          No one is suppressing anything. You can still use whatever name you want for your branch. Don’t blame software developers for adapting to a more inclusive culture. Especially when you are not part of the people affected by it.

                                                          1. 15

                                                            Until you end up being publicly shamed by thousands of “inclusive” virtue-signalling bullies.

                                                            1. 3

                                                              If you wanna complain about Twitter bullies, do that. However, “this move from the git project is bad because other people may eventually be assholes” isn’t… the greatest argument I’ve heard.

                                                              1. 1

                                                                Shamed for what reason? I’ve seen many people arguing against initiatives like this one and no one cares. Someone even started a petition on change.org to not change it and no one cares.

                                                                1. 14

                                                                  If this takes, I give it a couple of years at most until someone starts yelling about a project that did not switch or even worse - gasp - started with the master branch instead of main. How insensitive and unwelcoming!

                                                                  A venue enabled by buying into this virtue signalling crap and actually making it a thing.

                                                                  1. 1

                                                                    Right. So you went from a thousand people publicly shaming to someone yelling.

                                                                    1. 11

                                                                      From what I’ve seen, one person yelling leads to a tweet, leads to the eventual Twitter mob.

                                                                      1. 1

                                                                        Sure, but for saying what? @mordae is saying that would happen because someone decided to use “master” instead of “main”. Which seems farfetched.

                                                                      2. 4

                                                                        I remember Stallman.

                                                                        1. 2

                                                                          I think that was a bit more complicated than just naming a git branch.

                                                              2. 1

                                                                Does it actually make people uncomfortable?

                                                                Yes. Yes it does … there is no use of the word as it relates to version control that doesn’t derive from human slavery, specifically.

                                                                  1. 1

                                                                    Fine, edited for additional clarity, though all those meanings derive from the PIE meaning of “one who has greater power”.

                                                          2. 8

                                                            I’ll have to add a bunch of logic to figure out what the default branch name is for a particular repo.

                                                            What is a default branch? When I create a new repo, Git gives me a default branch, sure, but the moment after that command completes there’s never been a guarantee that the master branch exists.

                                                            I know I’ve personally hard coded the word “master” in at least a few scripts.

                                                            Unfortunately this was never quite correct, technically. My personal workflow is to always remain in a detached HEAD state and to not have any sort of “main”/“default” branch locally, so these scripts don’t quite work for me. If they were only supposed to support your workflow, you can keep using the old config setting without issue.

                                                            1. 9

                                                              What is a default branch? When I create a new repo, Git gives me a default branch, sure, but the moment after that command completes there’s never been a guarantee that the master branch exists.

                                                              Here’s a concrete example.

                                                              At work, we use this build system called bitbake, together with the yocto project, to build an embedded Linux distribution. The idea is that you build recipes which describe where to fetch some source code (usually in the form of a git URL + a commit hash + an optional branch) and how to compile and install the source code, and bitbake handles the rest.

                                                              I threw together a script to go through all of our recipes and figure out which recipes are outdated. To do this, it fetches the repo and checks if there are commits since the commit hash specified in the recipe. This is no problem if a branch is specified in the recipe, but what do I do if it isn’t? Instead of looking deep into the guts of bitbake and figuring out how exactly its logic for figuring out what the “default” branch is, I just defaulted to “master”.

                                                              There are obviously ways to do it “correctly”, and hopefully tools like bitbake, which are actually seriously and actively developed as a kind of product, do it the right way. However, there are loads of scripts which do things the easy way instead of the 100% correct way; essentially scripts which automate the steps which the author would’ve gone through manually just to make life a bit easier. Most likely, the solution in the case of the aforementioned script is to just keep track of whether a branch is specified, and, if it’s not, just omit the branch argument. My point isn’t that fixing these scripts is hard, but that there are loads of these scripts which will have to be fixed.

                                                              1. 4

                                                                I’m not the OP, but I think it’s reasonable to have, for example, a script that deploys master to an environment and is SHA-agnostic.

                                                              2. 1

                                                                I’ll have to add a bunch of logic to figure out what the default branch name is for a particular repo

                                                                I thought so too, but I got away with just using HEAD everywhere. It’s an alias for the actual main branch, whatever it’s called.

                                                                1. 4

                                                                  HEAD is not an alias for a branch. If you do git checkout alt-branch, HEAD will point at the last commit of alt-branch. If you again do git checkout main-branch, HEAD will point at the last commit of main-branch. If you’re in the middle of an interactive rebase, HEAD will point at a commit that in general won’t be the last commit of any branch. You can do a git checkout commit_hash which will detach your HEAD from any branch and it will only point at this particular commit. Generally, HEAD points at the commit that you have checked out locally at the moment, the one that will be the parent of the next commit you make.

                                                                  1. 3

                                                                    Works well enough for remote HEAD.

                                                                    1. 1

                                                                      Right, so in practice (found this with a quick search):

                                                                      • If you clone a fresh repo in your script, HEAD should point to the default branch, until you switch branches. This might work for some scripts, depending on the situation.
                                                                      • If you want to know which branch is the default, it looks like git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@' does the trick.
                                                                      • If you want to know the default branch on a remote, you can do git remote show [your_remote] | grep "HEAD branch" | cut -d ":" -f 2.

                                                                      These all feel like somewhat of a hack. With git changing this default, I wish there would also be some new built in commands. For example they could provide the default branch locally and on a remote directly, without needed to use sed or cut. Personally I’ve never written a script that needs to know the default branch name, but it sounds like some people have.

                                                                      1. 4

                                                                        I think that the entire issue rests with misunderstanding of git. In git, “default branch” is a matter of policy, not mechanism. It’s entirely up to the user. There is something like an “initial branch”, but that’s all. Git doesn’t mandate that a branch named so-and-so should have any special significance. So scripts trying to detect a “default branch” get it all wrong, because there is no such thing for all uses of git. Your organization may use git in one particular way where some branches have special significance and in this case, the policy of your organization should be hardcoded into your scripts. But those scripts won’t work for others. There are things like push and pull targets that may have some overlap with what people are looking for really.

                                                                        1. 1

                                                                          That makes sense, that’s a good description. I have never personally written a script that hard codes master, I just hear about other people doing it.

                                                                2. 3

                                                                  OTOH I’ve seen developers notice they’ve been using hardcoded master where they should have been using HEAD, and fixed their code. master was always just a default, never a requirement, so code that assumed this particular name wasn’t robust.

                                                                  1. 0

                                                                    you can always use an alias in your shell

                                                                    1. 10

                                                                      This is literally an instance of the “imposing a distributed cost” that I was talking about.

                                                                      1. 2

                                                                        Okay I understand and I am sorry I was not clear with my statement. I believe this is a direct cost of time and effort to mitigate, which in my humble opinion is an arbitrary and unnecessary syntax change to established code. However, I only meant to point out that a shell alias could be used to make it a less of a hinderance.

                                                                        1. 2

                                                                          I appreciate the apology, thank you.

                                                                3. 20

                                                                  I am sorry, but this is insane.

                                                                  Master indicates source of power (is to be obeyed) or truth (is to be ultimately trusted).

                                                                  This concept is extremely important in distributed systems, because it indicates the direction of data flows. It should not be offensive when applied to non-sentient technology. Far from that.

                                                                  It is the existence of such concept in out minds that actually enables us to empathize with slaves by fully grasping the totality of forced obedience.

                                                                  Removing words in this way will lead to us using euphemisms instead and eventually missing the connection. If we ever develop a sentient AI, proper use of the word master will actually work as a useful red flag. Unlike “leader/follower”, which has been proposed and almost never really fits.

                                                                  NOTE: I consider myself a progressive (culture should be shaped consciously), weak anarchist (eventually coercion-free society) and I fully support using tax money on educating and otherwise helping out disadvantaged (including public support going against entrenched big business), because I believe that everyone should have a good chance to fulfill their potential. I cannot endorse language lobotomy and mob justice.

                                                                    1. 5

                                                                      What does it say about us if we can’t honestly hold some degree of empathy for someone who, affected by a violent history of subjugation and dominance, might not love the idea of using symbols chosen for their hierarchical power association?

                                                                      I suffer under capitalism NOW. I have had suicidal ideations related to that. I know of other people who suffer more than me. Why aren’t we talking about how the capitalism makes literally everyone suffer (especially the underprivileged, often descendants of slaves) instead of offering an empty gestures to sleep better at night?

                                                                      Let’s stop it before more people die because of it, please?

                                                                      Oh, you can’t work on that right now, because you need to make sure someone’s feelings are not hurt slightly because of what his grandparents had to go through? Okay, I’ll wait. Oh no, it’s okay. Mine were only suddeutsche-related, so no biggie, no real issues apart from banned from college, so you go first. Let me know when you’re ready to deal with future instead. K, bye.

                                                                      PS: Before someone misinterprets me, inequality is inevitable in capitalism. Once you accumulate capital, you can buy mindshare and workforce to grow it. Meaning any latecomers are behind and can hardly outpace the winners. Winners don’t read lobsters. Yes, standard of living it the poorest areas grew. But did the long-term individual agency as well?

                                                                  1. 16

                                                                    My bigger gripe with that change is that it is “unannounced”. I don’t give a flying “care” about the new name (while I am on the side that old one was ok, and it is overreacting in the name of non real problem), and change is ok for me. But not having period of issuing warning during repo creation and similar is IMHO disrespect to the users. There should be two or three minor versions with warning message and then on major version bump the change should be introduced.

                                                                    TL;DR

                                                                    I am ok with change (while I think it is unnecessary), but I am very not ok with the way it is announced.

                                                                    1. 44

                                                                      It’s an unlanded patch on the mailing list - it’s not the announcement. 🙂

                                                                      Per Junio Hamano’s feedback (core maintainer): ‘(requires) a well thought-out transition plan (including user education and publicity), with the final “flip of the fallback default”’

                                                                      1. 3

                                                                        Ah, good to hear. My reading of the threads suggested that it was nigh.

                                                                        1. 3

                                                                          I had the same feelings as @friendlysock, especially after reading some other threads on mailing list

                                                                        2. 4

                                                                          As always, changes in Git’s core will minimize disruption for Git’s users and will include appropriate deprecation periods.

                                                                          https://sfconservancy.org/news/2020/jun/23/gitbranchname/

                                                                          This was the notice I received, when updating Git for Windows today.

                                                                        3. 10

                                                                          Here’s the best way I know of to ask git what its main branch name is (as a git alias):

                                                                          main-branch = !basename $(git symbolic-ref refs/remotes/origin/HEAD)
                                                                          
                                                                          1. 3

                                                                            That presumes a git clone’d repository, if you git init a local directory, won’t work.

                                                                            1. 4

                                                                              I know. It works with any repo with an origin. Open to suggestions. Annoying that git is changing the default yet there’s still no universal way to query what that default is.

                                                                              1. 3

                                                                                I’ve been trying to come up with something that works in all cases ever since people have been changing defaults left and right. Nothing great so far sadly.

                                                                                For local only git repos, I couldn’t find anything in .git that seems to record the branch that git init created. And symbolic-ref basically just gives you what branch HEAD is pointing to. Which is useless really:

                                                                                $ install -dm755 /tmp/test                                                                                                   ~
                                                                                $ cd /tmp/test                                                                                                   ~
                                                                                $ git init                                                                                                             /tmp/test
                                                                                Initialized empty Git repository in /tmp/test/.git/
                                                                                $ git symbolic-ref refs/remotes/origin/HEAD                                                                     master /tmp/test
                                                                                fatal: ref refs/remotes/origin/HEAD is not a symbolic ref
                                                                                zsh: exit 128   git symbolic-ref refs/remotes/origin/HEAD
                                                                                $ git symbolic-ref HEAD                                                                                         master /tmp/test
                                                                                refs/heads/master
                                                                                $ git symbolic-ref HEAD | sed -e 's|refs/heads/||'                                                              master /tmp/test
                                                                                master
                                                                                $ git checkout -b test                                                                                        master /tmp/test
                                                                                Switched to a new branch 'test'
                                                                                $ git symbolic-ref HEAD | sed -e 's|refs/heads/||'                                                                test /tmp/test
                                                                                test
                                                                                

                                                                                My current thoughts on the possible way to approach this pseudocodeish shell:

                                                                                if no remotes; then
                                                                                  check for a default branch from git config, return that
                                                                                  else
                                                                                    no way to know rc non zero
                                                                                 else
                                                                                  get default remote (may not be origin) via say:
                                                                                  git branch -rvv | awk '/HEAD/ {print $1}' | sed -e 's|/HEAD||g' 
                                                                                  basename $(git symbolic-ref refs/remotes/$REMOTE/HEAD)
                                                                                fi
                                                                                

                                                                                This all seems super brittle though, I’ll try implementing this tonight and experimenting with a git init without commits, with commits, and with a push to a remote, and a clone from a remote. But not sure I’ll cover all the cases with just that much. Input appreciated, cause if there are plans to change the default, we’ll need some way to programmatically figure this out.

                                                                                1. 2

                                                                                  Thank you for exploring some more of the technical thorniness, instead of piling into the dumpster fire.

                                                                                  1. 1

                                                                                    Crap, just thought of a case where this will break already, having two upstream remotes, have to figure out which is currently being pointed to.

                                                                                    And both of those remotes could have their own default branch name that differs. Hmmmm

                                                                                    1. 1

                                                                                      Nothing great so far sadly.

                                                                                      Yeah, exactly. Which is why mine above only works with an origin (and the name origin is itself an overrideable default!).

                                                                                      Also instead of sed -e ..., I use the built-in basename above which does the right thing.

                                                                                      Edit: I suppose basename could fail if the default branch has a slash in it…

                                                                              2. 9

                                                                                I have a meta question.

                                                                                Who is measuring downside? Aside from this change, with UI/UX changes in general, who is the tech person measuring how these changes might adversely affect the community of users and potential users?

                                                                                Looking at decades of creating and using software, the anti-pattern I see over and over again is that one bunch of people think some UI change will be moral/good/cool/more-productive/etc, then they sell another bunch of people. Somewhere at the end of the development pipeline sits the users, most of which were never asked or consulted about the change.

                                                                                Each one of these users may spend anywhere from a few minutes total to hours and hours each week struggling with the change. Note: even if it is a change that will help them in the long run, that doesn’t mean that it is pain-free. All changes have costs.

                                                                                So who’s measuring these costs? Or is the act of changing successful and deployed software all about one bunch of nerds selling ideas to another?

                                                                                I understand how we measure traction, engagement, stickiness, churn, and so forth. Who and how are we supposed to measure this? (Or do we just decide we know better than the people stuck using our stuff?)

                                                                                1. 1

                                                                                  I think there’s an assumption that a number of scripts and tools will need to be updated. Given that it’s probably the case that many of those tools can do a best effort test for master vs main, is this impact worth “measuring”? What would a metric look like? This frankly just strikes me as not the best use of time.

                                                                                  1. 1

                                                                                    In this case, I presume that the project leadership is responsible for taking the steps to measure or assess the impact.

                                                                                  2. 54

                                                                                    We need a postmortem on how a small group of wokes were able to force millions of hours of toil on the entire software industry. Think of all the repos and scripts that have to be updated… my god.

                                                                                    The connection between master branches and slavery is suuuuuch a stretch: git has no concept of slave branches, but BitKeeper, the version control system git was based on did. In woke logic, being descended from something offensive makes you offensive, therefore git is offensive.

                                                                                    As crazy as this is, there’s no way I’m going to fight this one. The mobs of self-righteous wokes that police the software industry are too strong, so I will update my repos and double-check my scripts like a good little worker bee.

                                                                                    1. 45

                                                                                      Here’s your postmortem: the “small group” of “wokes” appears to be the majority of our industry, just people trying to be kinder to one another. Personally I find the change heartening.

                                                                                      1. 20

                                                                                        I agree that this is true for a lot of things but I find this one a bit of a stretch. For example, I fully support avoiding the terms ‘blacklist’ and ‘whitelist’ because they provide a narrative that white == good, black == bad, which is not something I want to perpetuate in a society where ‘black’ and ‘white’ are adjectives applied to people independent of any personal choice on their part.

                                                                                        The discussions I’ve seen around renaming the branch name have had white Americans leading the charge for this change and black people either saying nothing or that they don’t personally feel a negative connection with the word ‘master’ and they’d rather white folks spent more time addressing structural racism and less time addressing words with a tenuous connection to some awful bits of history. The word ‘master’ in the absence of ‘slave’ crops up in so many other contexts (in degree titles, master of martial arts, master chef, and so on) and, if anything, this narrative is pushing the idea that black people can’t (or shouldn’t) self-identify with the word ‘master’ in any context, which is pretty harmful.

                                                                                        That said, on a personal level, I recently followed some advice in another article to put the current Git branch name in my command prompt and main gives me two extra characters of space before I wrap lines than master, so I do see a small concrete benefit to this.

                                                                                        1. 15

                                                                                          My own anecdata tells me that the number of black people who are uncomfortable with master/slave terminology in tech isn’t zero. I’m with you 100% on this not being the most important thing to tackle, but I fail to see why we shouldn’t do this as well as address the larger systemic problems.

                                                                                          The default branch in git seems like such a silly thing for people to object to changing (to me, at least) as branch names have no special meaning. All these scripts that need changing have the same bug: they hard-coded a value which was never guaranteed to be static.

                                                                                          This isn’t directed at you, but I read through threads like these and find myself wondering about the folks who argue strongly that this change, of all things, is simply too much to bear.

                                                                                          1. 8

                                                                                            The default branch in git seems like such a silly thing for people to object to changing (to me, at least) as branch names have no special meaning. All these scripts that need changing have the same bug: they hard-coded a value which was never guaranteed to be static.

                                                                                            It was never guaranteed, no, but it was the de-facto default for the overwhelming majority; probably above 99%. I’m a big fan of “convention over configuration”, and that has now been kind of lost. I also have 70 git repos or some such I now need to rename (or stick to “master” which might be misconstrued as making some political point) and probably a script or three.

                                                                                            At my last job we had even more repos, and a bunch of scripts floating left and right on people’s machines. Changing all of this for a group of ~100 devs and making sure everyone is up to date would be quite a task. Life is short; and there are real problems everyone agrees on. It just seems to me it would be much better if all that time and money was spent on more important issues.

                                                                                            At any rate, I think why people object so strongly is a resentment over being told what to do. No one really likes that, and a lot of people have the feeling this change is being imposed upon them. Hell, I feel this change is being imposed on me, because I now need to spend time on something I don’t see the point of. It’s not a “passive change” like a project renaming some terminology which doesn’t affect much outside of some documentation or popup.

                                                                                            Personally I think all of this is wasting a lot of political capital on something that’s … just nowhere near the top of the priority list, even if you agree it’s a problem in the first place. This seems to be a pattern I’ve seen over the last few years; this lack of focus, prioritisation, stubbornness, and tendency to divide people in camps is why I find American liberals so incredibly frustrating to deal with 🤷‍♂️

                                                                                            1. 5

                                                                                              At my last job we had even more repos, and a bunch of scripts floating left and right on people’s machines. Changing all of this for a group of ~100 devs and making sure everyone is up to date would be quite a task. Life is short; and there are real problems everyone agrees on. It just seems to me it would be much better if all that time and money was spent on more important issues.

                                                                                              My expectation is that when/if this change lands we’ll all be even more bored with it. It’s just a change to the default, I don’t see why much at my work or in my personal projects would need to change. Either we’re using 3rd-party generic tooling which definitely has the ability to specify branches and better not have hardcoded assumptions by the time this actually happens, or it’s just some in-house tooling which only needs to work on our own repos.

                                                                                              At any rate, I think why people object so strongly is a resentment over being told what to do. No one really likes that, and a lot of people have the feeling this change is being imposed upon them. Hell, I feel this change is being imposed on me, because I now need to spend time on something I don’t see the point of. It’s not a “passive change” like a project renaming some terminology which doesn’t affect much outside of some documentation or popup.

                                                                                              I think you’re spot on when you say folks are mostly objecting to being told what to do. I think our perception of the people who (we believe) are telling us what to do is also at play here.

                                                                                              Personally I think all of this is wasting a lot of political capital on something that’s … just nowhere near the top of the priority list, even if you agree it’s a problem in the first place. This seems to be a pattern I’ve seen over the last few years; this lack of focus, prioritisation, stubbornness, and tendency to divide people in camps is why I find American liberals so incredibly frustrating to deal with 🤷‍♂️

                                                                                              I’m not sure I deal with American liberals much (I honestly don’t know the political leanings of the few American colleagues I have), so I defer to you here. My staggeringly obvious observation is that lately there’s a whole lot more dividing people into camps going on, by seemingly everyone.

                                                                                              Thank you, sincerely, for taking the time to reply to me. What started as an off-the-cuff comment while I ate my sandwich has snowballed into quite the thread (by Lobsters standards anyway). I’ve spent more time thinking about this topic in the last 24h than I ever have before, that’s for sure :-) I think I’m done with this thread; my guess is most folks reading this, regardless of their thoughts on git’s default branch name, think it’s a garbage fire.

                                                                                              1. 4

                                                                                                I also have 70 git repos or some such I now need to rename (or stick to “master” which might be misconstrued as making some political point) and probably a script or three.

                                                                                                This reads to me as emblematic of a certain paranoia in the id of this community that I really think we ought to call attention to (not you specifically, but this fear more broadly). This type of fear is a counter productive projection that we need to let go of because it prevents us from making real progress.

                                                                                                I guarantee you that nobody is going to come across one of your git repos and call you out as a racist/colonizer/white supremacist/you name it. The vast majority of people calling for a better default branch name are reasonable and morally centered people who simply want to speak to their terminal without unnecessarily charged metaphors. They themselves almost certainly have git repos that will continue to use the branch master. People are not the personification of the “wokes” that the OP feels the need to fabricate.

                                                                                                People all over this thread are afraid of the scary “woke mob” bogeyman, but if they were to get off of twitter and have an actual conversation with real antiracist people, they’d probably realize they’re normal people with strong moral values who spend energy on constructing a more just world. What’s funny to me about this whole “master” debate is that I think the folks making the most noise are the ones fighting against the change. Those pushing for it have bigger fish to fry.

                                                                                                1. 7

                                                                                                  In this particular case I don’t expect people to come in and start accusing me of anything, but they might see “master” and misconstrue that to mean something even though it doesn’t. Of course, if I do change it then other people might also misconstrue it to mean something. I kind of feel a bit stuck here; as this politicisation of a bloody branch name is forcing me to take a position where I don’t really feel comfterable with either side (you can’t really inject nuance in a branch name). Although I obviously feel significantly less comfterable with all the “SJW cultural marxists!!!” idiocy, that doesn’t automatically mean I feel comfterable with the other side.

                                                                                                  I also don’t think that the “woke mob bogeyman” is quite as paranoid as you make it out to be; I’ve definitely seen quite a few incidents first-hand – and even been subjected to some – where people were beleaguered over a triviality, which sometimes resulted in some downright bullying. I know this isn’t the majority of people, but as the same time there definitely is a subgroup of what we might call “toxic SJWs”, for lack of a better term, which reflects really badly on the entire cause.

                                                                                                  What’s funny to me about this whole “master” debate is that I think the folks making the most noise are the ones fighting against the change. Those pushing for it have bigger fish to fry.

                                                                                                  I think that’s kind of a strange sentiment; do you expect people to just accept anything uncritically? And if there are bigger fish to fry, then why not fry them instead of wasting all this goodwill and political capital on this?

                                                                                                  1. 3

                                                                                                    I think that’s kind of a strange sentiment; do you expect people to just accept anything uncritically?

                                                                                                    Of course not. Critical thinking is required to reflect on the value of language in this context. It’s precisely a lack of critical thinking that leads to knee-jerk reactions, projections, straw men, overemphasis of the technical implications and these wacky slippery slope arguments I am seeing up and down the thread.

                                                                                                    And if there are bigger fish to fry, then why not fry them instead of wasting all this goodwill and political capital on this?

                                                                                                    Because people who care about social progress are pretty good at walking and chewing gum at the same time. You can go to the local DSA meeting, take part in a protest, read books from the library, and also send emails about git. You yourself mentioned having 70 git repos. Is it hard to imagine that a large group of people are capable of multitasking?

                                                                                                    1. 4

                                                                                                      And if there are bigger fish to fry, then why not fry them instead of wasting all this goodwill and political capital on this?

                                                                                                      Because people who care about social progress are pretty good at walking and chewing gum at the same time. You can go to the local DSA meeting, take part in a protest, read books from the library, and also send emails about git. You yourself mentioned having 70 git repos. Is it hard to imagine that a large group of people are capable of multitasking?

                                                                                                      A day still has 24 hours, so there really is a hard limit on things, and more importantly, because you’re asking other people to change with you, you also need to factor in that not everyone is willing to spend the same amount of time on this kind of stuff. This is what I meant with “wasting all this goodwill and political capital”.

                                                                                                      There are also plenty of far bigger issues that see hardly any attention, often because there is far too much focus on much less important matters. I’ll avoid naming examples so this doesn’t turn too political, but the whole “walking and chewing gum” multitask theory is a bit misguided IMHO. It annoys (even angers) me because all of this is standing in the way of actual progress.

                                                                                                  2. -1

                                                                                                    People all over this thread are afraid of the scary “woke mob” bogeyman, but if they were to get off of twitter and have an actual conversation with real antiracist people, they’d probably realize they’re normal people with strong moral values who spend energy on constructing a more just world.

                                                                                                    Is it even possible to have a conversation with these Enlightened Ones, whose moral values are so much stronger than the rest of us?

                                                                                                2. 4

                                                                                                  You’re not black and represent exactly zero black people in tech.

                                                                                                  1. 2

                                                                                                    Very true.

                                                                                              2. 7

                                                                                                Or, perhaps, they are the majority of people who care. Most people don’t care too much about what to call the default branch. For the average person, this is probably a small bit of trivia. The people who care (in either direction) are probably the minority. Of course, the people are care are the people who choose.

                                                                                                1. 4

                                                                                                  I suspect you’re correct; I’m looking at discussions like this and mistakenly assuming most people are “in the room”, but of course it’s only the people who care either way who bother to chime in. Thanks for reminding me of that :-)

                                                                                                2. 5

                                                                                                  You you mean the majority of the leaders of large, influential entities in the industry.

                                                                                                  1. 5

                                                                                                    It’s kind of a difficult conversation to have; I think that all things considered, there are very few people who want to be unwelcome, much less (subtly) racist, but once you argue “this is a pointless change” it’s very easy to have the optics of that. This is made even worse by all the “zomg, another example of cultural marxist feminazi SJWs destroying civilisation!!!!111” idiots.

                                                                                                    Most people that I know respond to this with “sigh 🙄”, but don’t really say much about it, and a very small amount of people I know are in favour of this. This is not a very scientific opinion poll of course, but as far as I can see it’s really quite a small minority.

                                                                                                    As I argued last time, I’d personally rather not comment too much on this to give people who are actually affected by this a chance to speak without being drowned out, and in the 5 months since I placed that comment I still see mostly white people (including myself) discus issues that don’t affect them, which makes me kind of uncomfortable.

                                                                                                    1. 2

                                                                                                      How is the master branch unkind? Do you think everyone using git was being unkind until this change?

                                                                                                      1. 2

                                                                                                        It’s not, and I certainly don’t think everyone using git is being unkind either.

                                                                                                        I think that changing the default branch name to not reference master/slave terminology (a common thing in IT which I know has made at least one of my friends uncomfortable) shows kindness and empathy. It is a tiny, minuscule such act, to be sure.

                                                                                                        Not making this change is not an act of unkindness. Using the branch name “master” in your repos is not an act of unkindness. An unkind act would be renaming the default branch to a racial slur. That’s my view on it, at least: not being kind isn’t the same as being unkind.

                                                                                                        I regret my pretty barbed initial reply to you, and I apologise. Reading it back, I made distinctly unkind assumptions :-)

                                                                                                    2. 36

                                                                                                      Worth to read: The Most Intolerant Wins: The Dictatorship of the Small Minority

                                                                                                      It explains the logic behind it. The funniest part of this is that master as a word predates slavery in the US.

                                                                                                      c. 1200, maistren, “to get the better of, prevail against; reduce to subjugation,” from master (n.) and also from Old French maistriier, Medieval Latin magistrare. Meaning “acquire complete knowledge of, overcome the difficulties of, learn so as to be able to apply or use” is from 1740s. Related: Mastered; mastering.

                                                                                                      https://medium.com/incerto/the-most-intolerant-wins-the-dictatorship-of-the-small-minority-3f1f83ce4e15

                                                                                                      UPDATE: tadzik’s was correcting me on the missing qualifier for which slavery i am talking about

                                                                                                      1. 19

                                                                                                        master as a word predates slavery

                                                                                                        I’m pretty sure slavery existed long before the 1200s ;) Did you mean “american slavery”?

                                                                                                        1. 12

                                                                                                          Yes, sorry, I mean the slavery why the mob is upset now. Slavery outside of the context of USA is irrelevant to them because it does not fit their narrative. Thomas Sowell writes a lot about this.

                                                                                                          1. 3

                                                                                                            No worries, thanks for clarifying – and for the reading links :)

                                                                                                        2. 6

                                                                                                          This was an entertaining read, thanks. This should actually be the top comment, since it gives more insight on what’s going on than any ideological comment in this thread (on lobsters, but on other sites as well).

                                                                                                        3. 45

                                                                                                          Not only you can’t fight this one, but not actively participating in woke’s narration makes you their enemy. Even expressing dislike about this patch risks being taken as a person who is pro-slavery, which is an obvious BS. But indeed, you can’t fight with angry mob alone.

                                                                                                          1. [Comment removed by author]

                                                                                                            1. 16

                                                                                                              Better for who?

                                                                                                              But it’s not only about this change. Generally it’s about introduction of the newspeak.

                                                                                                              1. [Comment removed by author]

                                                                                                                1. 14

                                                                                                                  It’s more like intolerant minorities want to impose rules for tolerant majorities. I disagree with minority in this case and I don’t think the majority should be controlled by a few offended individuals. It’s anti-democratic. I think it would be perfectly valid to leave the default as master, and if someone is offended, he or she could change the branch name in the configuration, that’s all.

                                                                                                                  1. [Comment removed by author]

                                                                                                                    1. 10

                                                                                                                      Let me be the judge of what affects me, or what doesn’t, thank you.

                                                                                                                      1. [Comment removed by author]

                                                                                                                        1. 10

                                                                                                                          Well that was offensive. I’m not that old, I’m not angry at all, we’re talking about just 1 issue, not many, and even that I’m just defending my point of view, that’s all. You, on the other hand, seem to be pretty intolerant of other people’s point of view.

                                                                                                                          1. [Comment removed by author]

                                                                                                                            1. 6

                                                                                                                              Just read this. If you still think I’m childlish, and of course you’re free to think this way, then there’s no point in continuing this thread.

                                                                                                                2. [Comment removed by author]

                                                                                                                  1. 8

                                                                                                                    But I’m also people, and I don’t feel it’s a change for the better.

                                                                                                                    1. [Comment removed by author]

                                                                                                                      1. 11

                                                                                                                        Okay but you do realize that you’re describing our situation here? You’re trying to impose your point of view on me, only because I don’t like the idea. Yet also somehow you think this is a wrong thing to do. Doublethink?

                                                                                                                      2. -1

                                                                                                                        Maybe collective endeavors like open source projects aren’t a good fit for you.

                                                                                                              2. 13

                                                                                                                You misunderstand the primary ‘woke’ argument.

                                                                                                                The primary argument is that encountering the word ‘master’ reminds people of the enslavement of their ancestors, the related stories of suffering and the discrimination and oppression they are still being subjected to. It’s what is called a micro-aggression: something that isn’t a problem in small doses, but that adds up when experienced over and over again. Death by a thousand cuts.

                                                                                                                What this change, and others like it, intend to accomplish is not unnecessarily subjecting people to such reminders.

                                                                                                                1. 13

                                                                                                                  Guess we gotta remove it from the dictionary too, lest they chance upon it and feel hurt.

                                                                                                                  1. 5

                                                                                                                    That would be the logical conclusion from the argument, save for the word ‘unnecessarily’.

                                                                                                                    The question is when it is appropriate to not be accommodating to those that claim being hurt, because the cost of accommodating them is too high. And it bears mentioning that the cost effectively, indirectly, causes others to suffer.

                                                                                                                    It’s not all or nothing. You don’t have to reject the argument to reject the conclusion, as it hinges on costs and thus trade offs. There should be a few Schelling points here and I agree that it seems unreasonably difficult to defend some of those points.

                                                                                                                  2. 11

                                                                                                                    Well, my homeland has suffered a communist dictatorship and invasion for decades. Reading the cultural marxism here and there reminds me of the terrors my people, and specifically my family has suffered from communism in the last hundred years.

                                                                                                                    What could be changed, to unnecessarily subject me to these micro-agressions?

                                                                                                                    1. 12

                                                                                                                      cultural marxism is a conspiracy theory invented by the american far right. Go complain to them.

                                                                                                                      1. 7

                                                                                                                        Actually it’s reinforced by former USSR KGB agents ;).

                                                                                                                        1. 4

                                                                                                                          totally a reputable and unbiased source on this topic

                                                                                                                          1. 5

                                                                                                                            Well, can’t deny that they actually had much experience with it (Stalin, Lenin), unlike USA

                                                                                                                        2. 9

                                                                                                                          sure, whatever different opinion appears it is fake news, conspiracy theory, or simply wrong, not worth consideration or discussion.

                                                                                                                          1. 9

                                                                                                                            When there is:

                                                                                                                            • kids being threatened
                                                                                                                            • jews in disguise
                                                                                                                            • any flavor of progressive agenda threatening the lifestyle of conservative or reactionary white people
                                                                                                                            • loose attacks on intellectuals

                                                                                                                            Yep, it’s probably a conspirancy theory. QAnon is the same, just more loud and with sweatpants instead of cheap fedoras.

                                                                                                                            1. 4

                                                                                                                              nah, you’re just wrong. the origins of cultural marxism

                                                                                                                          2. 2

                                                                                                                            That one group was lucky enough to get their cause taken up by a larger group of activists doesn’t entitle any other group to get their cause taken up as well. But the arbitrariness doesn’t imply anything about the reality and worthiness of the cause (neither in the positive nor in the negative direction).

                                                                                                                            You could start a movement to try and get your cause taken up by as many fellow activists as you can find to spread awareness so broadly that it leads to changes like the one we are discussing here. An outcome could be that promoting communism becomes something that is considered shameful.

                                                                                                                            1. 1

                                                                                                                              Frankly, comparing the suffering of the victims of Communism to having to make a minor change in a software workflow strikes me as wildly hyperbolic.

                                                                                                                              1. 10
                                                                                                                                1. If I was comparing the suffering of victims of communism to anything that would be the suffering of the victims of slavery in the USA in the context of my comment.
                                                                                                                                2. What I was comparing is that the micro-agressions I am subjected to by some comments on the internet, are of the same category, as the micro-agressions one has to take when reads the master word while working with version control.

                                                                                                                                If you think I should not be reminded of that, and the above is a hyperbole (not what you said), that is an opinion some share about the case about the push to remove the word master.

                                                                                                                                1. 3

                                                                                                                                  Thanks for clarifying your position.

                                                                                                                              2. [Comment removed by moderator alynpost: prune off-topic, flagged thread.]

                                                                                                                            2. 17

                                                                                                                              I think you can make this point without using such charged language.

                                                                                                                              I happen to agree with the change, but I don’t consider myself a “self-righteous woke”. I read your post and felt uneasy.

                                                                                                                              1. 4

                                                                                                                                The obvious solution is to fork git, keep master as the default name, and give it a nice new name, like… Consolidated Source Association, or similar…

                                                                                                                                1. 3

                                                                                                                                  So in summary, you think that master in git is not offensive, and you think that people who do find it offensive are ridiculous. Curious, how many of your coworkers are black?

                                                                                                                                  1. 71

                                                                                                                                    Curious, how many of your coworkers are black?

                                                                                                                                    This feels a bit like “what do you even know about being offended”. I share /u/y0ssar1an’s viewpoint, so let me tell you how it looks from my perspective. I have zero black coworkers as I live in a country that barely has any black people in it at all (Poland). The word “master” doesn’t hold have any negative meaning to people around here. But there is another: “Collaborator”. Used very widely in VCS-related software, in our cultural context it immediately reminds people of the old meaning: “the one who collaborated with the nazis during WW2”.

                                                                                                                                    My ancestors fought in WW2. Am I now smearing their name because I have myself become a collaborator? Should I now feel uncomfortable because someone on the other end of the world came up with a word that makes me slightly uncomfortable? No, that’d be absolutely ridiculous. Every cultures has words that make some people uncomfortable, and trying to please everyone by making the subset of the language we use smaller and smaller is not just futile imo – it’s also pointless, and arguably a detriment to diversity by itself.

                                                                                                                                    The implication that slavery is somehow inherently connected to racism is by itself an ameri-centric idea. This whole master->main “diversity theater” feels like a symptom of a particular culture being unable to deal with their past (or largely their present, afaict) and thus resorting to empty gestures rather than trying to deal with real problems – last I checked, Github, the champion of the “master bad” movement was still working with ICE who’s basically building concentration camps for minorities. But I guess it doesn’t bother people as much since it’s not so well entrenched in american culture.

                                                                                                                                    1. 1

                                                                                                                                      The implication that slavery is somehow inherently connected to racism is by itself an ameri-centric idea.

                                                                                                                                      I could not imagine what exactly it is that make America, slavery, and racism so connected! Words have meaning which are inherently connected to history. Just because you want to pretend that they always mean what makes you feel best doesn’t mean everyone is going to harbor the same narrow viewpoint as you.

                                                                                                                                      1. 9

                                                                                                                                        Outside of the USA slavery has been a think before, and at some unlucky places after the abolition in the USA. It did not generally have a racist motivation: debtors could sell themselves as slaves, prisoners of war were sold as slaves, and in many feudal states serfs had so few rights and possessions, that they were basically slaves.

                                                                                                                                        It is ironic, but in Tibet actually the invading communist chineese have abolished slavery, where it had no racist character.

                                                                                                                                        In the USA, and the Americas generally slavery did have a racist character, as the slaves sold by the Netherlander, English and Arabic slavers were mostly of African origin.

                                                                                                                                        1. 5

                                                                                                                                          Totally correct. Historians very regularly caution against comparing the brutality and sheer scale of the transatlantic slave trade to earlier forms of slavery. A great way to understand why is to go back to the fall of the Songhai Empire for it is through the unfolding of that empire and the colonial fire that engulfed its ruins that the taking and trading of slaves exploded violently and grew to dispossess, dislocate, and traumatize millions of families.

                                                                                                                                      2. 1

                                                                                                                                        The use of the (American) English language can be seen as a form of cultural imperialism, but it also allows people like you (not native English speakers, but part of the global computing community) to reach markets previously unimaginable. I think putting up with the occasional linguistic disruption that emanates from the dominant market should be worth it.

                                                                                                                                      3. 33

                                                                                                                                        I wonder how many of them have MSc degrees. You know, Main of Sciences degree.

                                                                                                                                        1. 12

                                                                                                                                          The two definitions of the word “master” for “owner” and “teacher” are a doublet, they come from different etymological paths that converged. Git derives its use from the former.

                                                                                                                                          1. 7

                                                                                                                                            And where they keep the main copy of their diplomas.

                                                                                                                                      4. 28

                                                                                                                                        I’m so sick of lobsters. From the profiles that post and have (presumably RL) pictures, and from tapping through the invite trees of posters, it feels like there is very little racial, class, and gender diversity here. The ensuing discussion on threads involving diversity are sickening to read and pretty much reinforce this perception. They are orders of magnitude worse around this than threads on HN about this stuff, which is hard to believe.

                                                                                                                                        I doubt I’ll be sticking around. If anyone who operates this thing cares to make it more diverse and less of a dumpster fire and happens to see this, consider that only allowing members to invite members might be partly why diversity is so poor here (at least when it comes to commenters). I’m not advocating to open the floodgates, not totally sure what the solution is (it’s a hard problem in general), just proposing that as a potential problem

                                                                                                                                        But anyway, at least for the meanwhile, this is not for me. Have fun downvoting/flagging me into oblivion

                                                                                                                                        1. 8

                                                                                                                                          Most comments here are pretty happy or at least politically indifferent with the change made by Git: where are the “not diversity friendly” comments that reinforce your perception of oppressive content ?

                                                                                                                                          From the profiles that post and have (presumably RL) pictures, and from tapping through the invite trees of posters, it feels like there is very little racial, class, and gender diversity here.

                                                                                                                                          If we are being open to each others, why would you even consider anyone ethnicity, gender or class to judge their arguments ? Should we not aim for the complete opposite: care about the message, not the messenger ?

                                                                                                                                          1. 2

                                                                                                                                            I get what you mean, but one of the great things about Lobsters is hearing opinions from subject matter experts. If topics like this are going to keep coming up, I think it’d be nice to have more people familiar with the subject talking about it.

                                                                                                                                          2. 8

                                                                                                                                            I doubt I’ll be sticking around either. I already know a few other people who just stopped coming here because of similar issues. I’ve also noticed quite a few of the people in this thread complaining and spouting whataboutisms were also doing the same in that furry post from a couple of days back.

                                                                                                                                            @pushcx Maybe consider how this site is run and the outward image it projects when these types of topics come up. It’s a recurring pattern and not a welcoming one. You’re free to run your site how you want but there is a perception in certain off site circles about this site and the type of user here. If this is an image you’re fine with then that’s fine but don’t expect minorities to stick around, want to join, or recommend the site.

                                                                                                                                            1. 10

                                                                                                                                              If I could upvote more than once, I’d give you all I had left.

                                                                                                                                              1. 4

                                                                                                                                                it feels like there is very little racial, class, and gender diversity here

                                                                                                                                                I’m a racial minority who grew up in a low social class so I feel this on every tech site (where folks seem to have endless anecdotes about their gifted and talented program in their competitively ranked national high/secondary school, but none about how computers were expensive growing up which made experimenting with them difficult (in my high school, a sizable amount of people could not even afford computers)), and Lobsters is no exception.

                                                                                                                                                But setting that aside for a moment, I think lobsters diversity problems extend even beyond this to technical content as well. I’ve been on Lobsters for a long time (6 years according to my profile), and the Lobsters technical community spends an inordinate amount of time focusing on PLT, especially as related to functional programming, and has a particular dislike of cryptocurrency. While HN and other tech social sites have similar biases, it feels so glaringly obvious on Lobsters that it feels like predictable groupthink. It’s to the point where I feel like I could game the karma system just by adding tags and keywords into a post title.

                                                                                                                                                There’s so much more to tech out there. In particular, despite the huge growth in scientific computing over the last decade, I rarely see anyone here mention anything about Deep Learning, statistics, SAT, or convex optimization. We get the occasional post on 3SAT and Z3 seems to be somewhat popular here, but other than the occasional post on computer graphics, Lobsters largely ignores scientific computing. I never thought about this until your post, but I think the invite system might be a contributing factor.

                                                                                                                                              2. 7

                                                                                                                                                And I was hoping for masterbedroom.

                                                                                                                                                1. 10

                                                                                                                                                  To the folks who think this isn’t a good thing:

                                                                                                                                                  1. This isn’t forcing you to rename your existing “master” branches to “main”. This is for new repos.
                                                                                                                                                  2. If you have tooling that is supposed to work on arbitrary git repos that assumes that there’s a branch named “master” and it’s the default branch to merge to, your tools have a bug and this revealed it. There’s nothing special about the “master” branch, it’s only the default by convention. If your tool creates a new repo, it’s welcome to also configure a master branch if “main” is triggering for you, and if it’s supposed to work on any repo it already needed to be configurable for which branch was default (or if it worked with GitHub it should have been checking repository.default_branch)
                                                                                                                                                  3. From a philosophical standpoint: If you feel angry about this, you should spend some time examining why, and considering what it’s like for people who aren’t in majority groups. People in gender and ethnic minorities are constantly asked to change their appearance or behavior to conform to a norm that, at least in most CS/IT circles, is dominated by white and Asian men. That often involves conforming to speech patterns (“code switching”), changing hair and clothing, and other adjustments. Doing work to make the language in your project more inclusive is imposing on you a task that is implicitly imposed on the minorities we’re trying to include, and that extra work, which is familiar to members of those minorities, is unfamiliar to you.
                                                                                                                                                  4. If you’re lawyering about how “master” isn’t or shouldn’t be offensive to descendants of slaves…let’s imagine you’re right and people are taking too much offense. You know what? Making an effort to be inclusive with input from those we’re trying to inlcude in and of itself is a social good and makes people feel better, for the same reason saying you’re sorry is a nice thing to do if someone’s feelings are hurt even if you didn’t intend to hurt their feelings.
                                                                                                                                                  1. 10

                                                                                                                                                    Making an effort to be inclusive with input from those we’re trying to inlcude in and of itself is a social good and makes people feel better, for the same reason saying you’re sorry is a nice thing to do if someone’s feelings are hurt even if you didn’t intend to hurt their feelings.

                                                                                                                                                    Wanna do something for black americans? Waive their college fees. Go ahead and actually do something to give them a chance. Push it at least to the Senate to really show them you mean it.

                                                                                                                                                    Git default branch is a pittance.

                                                                                                                                                    It end end, this is something you can do now to show you care. Much like hanging a flag or something simarly useless. And then you go back to work.

                                                                                                                                                    And in a month, you will promote your white guy, because he is better at his job. Which is true, but only because his patents could afford a computer for him to play around with since he was 8yo.

                                                                                                                                                    Unlike your other colleague’s parents who could not attend good enough school to get a good enough job to have that kind of money because your grandparents pushed for their segregation.

                                                                                                                                                    So enjoy your fuzzy feeling.

                                                                                                                                                    (Not directly reacting to the parent. I have no idea where are they from and who their ancestors were.)

                                                                                                                                                    1. 6

                                                                                                                                                      That’s exactly right. It’s a tiny gesture, the least we can do, and yet there are a lot of folks here who seem resistant to even doing that.

                                                                                                                                                      1. 8

                                                                                                                                                        Because it doesn’t change anyone’s material conditions, stigmatizes a useful concept, costs work and can be used to bully people tomorrow.

                                                                                                                                                        But please, point me to a promise from Microsoft to use their lobbying power (which they have A LOT OF) to actually improve material conditions of slave descendants or allow me not to hold my breath while I wait for you to take any other steps on the path to actually make their lives easier.

                                                                                                                                                  2. 8

                                                                                                                                                    Workaround is trivial. Thanks for the warning.

                                                                                                                                                    1. 4

                                                                                                                                                      Instead of one huge patch that reflects essentially a search-and-replace in the test suite, this patch series splits the changes up into chunks that are intended to be smaller than 100kB so that they are not rejected by the Git mailing list.

                                                                                                                                                      Back in the times GNU project’s goals included to create a system that does not have arbitrary limits built in as prior UNICES (or UNIXEN) did.

                                                                                                                                                      I find this limitation on the tooling git is maintained on, and the need to split patches a bit sad. I think basically the email-based workflow is bound to have quite low limits compared to a https/ssh based forge workflow, because of the limitations of the mail servers usually have <25M limitations.

                                                                                                                                                      One can argue that such pig changesets are not a good idea, yet 100kb is really not that much.

                                                                                                                                                      1. 3

                                                                                                                                                        100kB of code diffs is an absolute monster. Yeah an image can take 4GB these days if you use the right (wrong) format, but just remember that every single byte of this is code.

                                                                                                                                                        1. 1

                                                                                                                                                          Technically half of it? depending on the ratio of diff header versus removed and added lines, no? ;)

                                                                                                                                                        2. 1

                                                                                                                                                          One can argue that such pig changesets are not a good idea, yet 100kb is really not that much.

                                                                                                                                                          100kb not that much? Entire books can fit into 100k! I’ve had to review 10 000 line + diffs before. The reason for splitting up commits isn’t tooling, its for humans. If you’ve ever had to keep up to date reviewing a 10 000 line change you’ll probably agree with me on this. (before/if anyone asks it was for a filesystem, and splitting it up wasn’t really an option like a web app or other userland code, it was changing a ton of kernel interfaces used for arm64 so had to be done in one fell swoop, but damned if every run through that change didn’t mean half or more of my day was gone on an update)

                                                                                                                                                        3. 3

                                                                                                                                                          There could be a group of people who doesn’t care about these bs, and fork git with master as the default branch name.

                                                                                                                                                          1. 5

                                                                                                                                                            Maintaining a fork of git for the sole purpose of reverting the default branch name sounds like the opposite of not caring to me

                                                                                                                                                          2. 3

                                                                                                                                                            Nobody masters git anymore ? OK.

                                                                                                                                                            1. [Comment removed by moderator alynpost: prune off-topic, flagged thread.]

                                                                                                                                                              1. [Comment removed by moderator alynpost: prune off-topic, flagged thread.]

                                                                                                                                                                1. [Comment removed by moderator alynpost: prune off-topic, flagged thread.]

                                                                                                                                                                  1. [Comment removed by moderator alynpost: prune off-topic, flagged thread.]

                                                                                                                                                                2. [Comment removed by moderator alynpost: prune off-topic, flagged thread.]

                                                                                                                                                                  1. [Comment removed by moderator alynpost: prune off-topic, flagged thread.]

                                                                                                                                                                    1. [Comment removed by moderator alynpost: prune off-topic, flagged thread.]

                                                                                                                                                                      1. [Comment removed by moderator alynpost: prune off-topic, flagged thread.]

                                                                                                                                                                        1. [Comment removed by moderator alynpost: prune off-topic, flagged thread.]

                                                                                                                                                                  2. [Comment removed by moderator alynpost: prune off-topic, flagged thread.]