It's a retroactive bastardization of the word based on one particular culture's one particular interpretation of it (master being, apparently, a slaveowner) that ignores both the much earlier meanings of master artisan or master craftsman (as opposed to journeyman and apprentice) and masterpiece (through which an artisan is recognised as a master), and the modern meaning of a master copy (like a master record in disc printing).
This isn't like replacing the "master and slave" terminology with regard to connected devices. That one was warranted because it was often inaccurate and confusing. But forcing the adoption of main instead of master feels like someone got offended on someone else's behalf because a word looked superficially like that other bad word, and apparently we can't have an understanding that goes deeper than what letters it's made up of.
Amerika ist wunderbar. This is an --initial-branch=master household.
regardless of that, it's never inconvenienced me and it's still a net gain in readability, since main actually means what it means. have my shell scripts set up to use either one for any repo I'm in automatically.
Honestly it's not even about convenience. As far as breaking conventions go, this one has none-to-minimal impact -- existing master branches won't suddenly become invalid. But it's yet another instance of a subset of a subset of a subset of users getting to enforce their sensibilities for superficial reasons, and ultimately with zero effect regarding the cause they claim to represent; cultural and linguistic differences be damned.
I'd love to be more specific, but I don't want the comments to turn into a warzone.
Claiming that master on github stems from master recordings is not only disingenuous but also incorrect.
As a FOSS alternative to BitKeeper, Git naturally reimplemented it's naming conventions as well - and because of the power of version control - we can actually check what the original meaning was derived from:
And yes I agree that GitHub just changing the name of the default branch while keeping their ICE contracts is performative as fuck - which imo means we should both boycott GitHub and use naming conventions that don't have a history related to one of the worst atrocities the global north has brought upon the world...
I concede the point about the word's origin... not that I've seen anyone ever refer to a branch as a "slave", nor do I think that it's appropriate given that the branches are not subservient to the trunk/master/main/etc until one is merged into or rebased onto the other...
I also wrote a whole-ass speech about the modern world's relation to the Atlantic slave trade and the guilt certain people are trying to inflict on everyone, but I know what the replies will be (we're just redditors by another name after all) and it's ultimately not a soapbox worth dying on. Anyway, my thesis is study history, learn its injustices, and learn how to do better effectively.
People: hey you should think about this a bit and consider changing it to have a small positive impact
You: 🤬
Nobody's forcing you to, nobody's yelling at you, if you don't do it it's not a massive deal, you're just yelling at clouds. Actually that's not entirely true; I'm yelling at you because of your absurd overreaction to the mere idea of being a little thoughtful.
I don't know if you got it from media, or you heard about this movement and for some reason immediately jumped to "they're forcing us!", but you really need to do some self reflection on why you got it so wrong and why you were so quick to do this outburst.
At some point needlessly banning words just empowers bigots by letting them claim larger and larger parts of the vocabulary. Shouldn't we try to reclaim words instead, and deprive the words of their power?
Just "banning" words, especially in cases such as this one when the connection to master/slave is pretty weak, actually increases the negative power of the words and I'd argue empowers people with malicious intent
This isn't like replacing the "master and slave" terminology
I struggle with SPI (serial peripheral interface). Two of the pins are MOSI/MISO (master-out-slave-in and vice versa). There are some alternative namings, but this one seems especially ingrained in embedded dev
"trunk" is what it was called in SVN, too. Well, kind of. SVN didn't have a real concept of branching like Git does, but the main development would almost always happen in a root directory called "trunk".
I'm not sure why Bitkeeper used "master", but that's why Git called it that (Git was originally built as a replacement for Bitkeeper).
I personally don't think the word "master" should be considered offensive - my wife has a master's degree in deaf education - but I've switched to "main" because that seems to be the convention now and it really doesn't have to be an issue.
There's no "slave" convention in git so I'm not sure how it can be considered an issue (I get that drives being master and slave is a bit icky). But then, what is it a master of?
As others have said, "trunk" would have been a more sensible replacement.
It's a master the same way that an original recording (the final version before mass reproduction) is called a master; mixing and processing the raw media clips into such a recording is called mastering. It's a convention that has existed long before computers were a thing.
There's an actual response to the issue at hand in that link; man didn't just decide to drop a meme and peace out (though I probably would've assumed that was the case if it wasn't for the edit)
It's about master copy. You have a master copy, and you have the development copies that are a copy of the master which is where you make your changes.
If i had to guess, the problem is that people don't know how to use git and develop in the master
Honest question. I cannot see if you are being serious here. If this is a real thing, is it because of US slavery history? No way you are saying your wife has a main degree in deaf education?
No, I said I don't think the word "master" is inherently offensive - after all, my wife has a master's degree. But to answer OP's question, I've switched to "main" as my git branch because that seems to be the new convention.
Just use main. I'm not bothered by either, but I'm not in the demographic that would be bothered by master, so I use main and STFU. It takes way less effort to switch to main (if you haven't already) than to come up with all this rhetoric about why master shouldn't trigger people.
I would argue that it's best/easiest to leave existing projects on master, and just use main for new ones. Either way I agree, people arw reactionary af about this issue
That's why we switched, on both closed- and open-source projects. There's just no winning an argument that puts you on the same side as racists.
At one point I was considering how, if someone asked on one of our public repos, I'd say "no" but at the same time post a receipt for a donation to the NAACP just to prove I wasn't racist. Thankfully I realized how stupid an idea that was before it came to that.
Performative wokeness is a cancer, man. Did any of this arguing and vitriol actually help any marginalized group in STEM? I really fucking doubt it.
If you have a main and a master branch in the same repo and you don't delete one at the very start of the project, God has abandoned the living bcz we're lost and he has forsaken all that is good in the world.
Don't get me wrong, the whole debate is Microsoft just being performative (why not use your vast wealth to actually help people?). But honestly, putting the debate aside, "main" is just a clearer and more intuitive name.
I think it's the same with blacklist/whitelist -> blocklist/allowlist. It allowlist/blocklist actually says what it does in the name without using the idea of racism and white supremacy. I wish more software would just use these terms by default. (maybe some aliases for the old names)
The problem is that "master" means several things. There is Masters degree, master sword, master blacksmith, master copy, all of which have absolutely nothing to do with master / slave.
The Git "master" terminology came from "master copy". There's an email thread online where someone asked Linus Torvalds the origin and this is what he said.
The whole thing about it being about master / slave was some random uneducated person guessing, and they were wrong.
I agree that main is simpler and clearer, but it has nothing to do with racism.
Clarification: the "it" in the second sentence was referring to "blocklist/allowlist" specifically, not "main"
Of course the name "master" in the git context may mean something completely different from slavery or similar, but the possibility of misinterpretation is IMO another (maybe small) reason that new projects should consider using the clear and unambiguous "main" instead of "master".
It actually says what it does in the name without using the idea of racism and white supremacy.
The origin of the words blacklist and whitelist doesn't have anything to do with racism.
If someone looks around and only sees racism, then who is the racist?
Even if the word's origins aren't racism, I hope you can see why having a blacklist with "bad" things on it that won't be allowed and a whitelist with "good" things that are allowed maybe isn't the friendliest terminology. (especially when there are more intuitive names available that avoid this problem)
Some would argue it's culturally imperialistic to impose US cultural sensitivities on the rest of the international English community.
Wasn't the inventor of git Finnish?
The entire world uses git.
The default branch for some projects is "production" since CD deploys on pushing to that branch
For new projects, main. My thought is that even if master is not offensive, since the industry has generally made the change, the only reason to stick with master is stubbornness or hating political correctness, neither of which aligns with my self-view so I'll use main and move on.
In general if people are genuinely hurt by the use of some words, I'm not sadistic so I'll avoid using them. From my perspective morality is the pursuit of the reduction of suffering, even if that suffering is internal.
I mean, the problem people have with it isn't a name change or improving inclusivity. It's the fact that they feel like they are being bullied into doing something they had no input into in the name of inclusivity. What pisses people off is how, as soon as someone says "x" isn't maximally inclusive of some marginalized group, everyone has to change or else get called a categorically bad person.
For example, suppose you have a red hat that you enjoy wearing. You got it at wafflefest a decade ago, and it says "I <3 Waffles". Then one day, your boss sends out an email that no more red hats are allowed in the office because it might create an unwelcoming environment. You will, of course, be pissed off. Not because you can't wear your waffle hat anymore, but because your boss feels entitled to control the minutiae of you life like this. You'll think to yourself "fuck that guy, and fuck whoever brought up banning red hats in some corporate board room 1000 miles away. This is bullshit!"
People like their autonomy, and don't like being controlled. Doesn't matter if it is in the name of increased corporate profits, or inclusivity, or saving the bees, or dying of lung cancer. They don't care about the name of their git branch - they care that they feel like they are being forced to change it.
That analogy doesn't really apply though. The decision to change master to main was a collective one, not made by "some corporate board room 1000 miles away". It may feel like that's how it went down because you only noticed when GitHub changed their defaults or whatever, but that decision was not made in a vacuum, it was the result of lots of people saying "hey, this is a problem, let's fix it" for a long time before any actions were taken.
No one is offended by that word, at some point we need to stop wasting time on pointless debates and move on. If I start tweeting that I find "main" offensive are we going to have to find another name?
Don’t forget laziness. I have some projects that have been around forever and I am not changing it across my infra because I am lazy. I will do it next year…
In general if people are genuinely hurt by the use of some words, I’m not sadistic so I’ll avoid using them
That's a sane position. Only issue is that this have nothing to do with the question, and the people that were the most vocal about this issue had no business talking about it in the first place.
Ultimately, git is flexible; beyond some potential local and shared automation, anyone can call their local branches however they want, regardless of other and servers. Personally, changing years of habits and tooling (that probably should not have hardcoded some names in the first place) is not worth following a change proposed by misled people.
Do you have any evidence that "the industry" has made the change? My personal experience says the opposite. Unless you mean "new repositories use the new default name" which says more about people simply not caring rather than anything else.
Just that master doesn't actually makes much sense in most git workflows.
If you understand master like you would understand the master/slave relationship in old tech, then of course, master seems to make sense until you realize that there is no slave in that sense or in name. Additional, master is rarely doing anything but having release or hot fixes being merged into it. Arguably dev is the master of the branches.
In other words, master was always a bad name. It is silly to rename it because "racism" but it is at least equally silly to act like master is a much better name than "main" or "live" or "prod" or ... Fuck, the list is long.
This is not to say that the term predates slavery and is neutral today in pejorative terms.
Music used it because the original is of greater quality. The term is technically and syntactically correct here.
Slavery used the term correctly, extensively and horribly. Honestly, it tainted it.
Most of the people who say it's no big deal or they don't care have ancestors who were on the unimpacted or positively impacted side of slavery. Very "let them eat cake" tones. (even though that story itself is a misnomer)
To be perfectly honest, the term in its etymological roots doesn't fit well in the digital age for common use cases. It's fallen into common parlance from the analog era, when it had a more direct meaning. Even though it's not regularly being used as a pejorative, there's (not zero, but) little harm in slowly phasing it out for better, more accurate terms like main or trunk or origin.
I’m not going to be bullied by liberal arts partisans into reconfiguring how my brain works
I hate to tell you this, but that's a fascist argument using tradition to block out change and accepting others. It's a screw those other races/religions history and feelings because it makes me feel less powerful kind of statement. I doubt that's your intent, but there it is.
If it uses master and it's too much trouble to get people to switch. It stays master until we can coordinate.
If I'm starting a new project I use main.
Why?
It doesn't take much to do and it avoids any misunderstandings or arguments and we've got work to do. I don't particular care if you guys are "stuck" on master. If that's what it is and everyone wants to keep it that way, I don't have enough will to change it. If it's under my control, I will change it.
I will just say that things in tech change a lot in general. That's just the nature of it.
If I can do one small thing that makes people feel better, then why wouldn't I do it?
I don't necessarily see that as a connection to a measure of competency. It seems you do and you probably have good reasons to believe so and I would say that I haven't experienced that.
I see mostly people defending master starting arguments. I've never seen anyone pushing for main get even half as mad as some of the people coming up with a reason why it's stupid. Like, holy shit guys, just don't change it and move on, why be so mad about it?
I don't care which one you use, just don't change it once it's established. So many legacy Yocto projects got broken cause open source libraries changed their branch names.
I don’t care which one you use, just don’t change it once it’s established. So many legacy Yocto projects got broken cause open source libraries changed their branch names.
This was one of the arguments when the renaming was first proposed. "Just rename it, it won't break anything! It's only racists that want to keep the name!"
Sure, except for all the CI/CD scripts, release scripts, etc that all have "master" there and are now broken.
I know of a company that their entire CI pipeline was broken overnight because some "helpful" person renamed the branch to master but didn't bother checking out their pipelines...
I know of a company that their entire CI pipeline was broken overnight because some “helpful” person renamed the branch to master but didn’t bother checking out their pipelines
Sounds like the sort of simpleton that would find "master" offensive.
Last place of employment had develop as the default branch. Actually quite liked it. (There also was a main branch, which only got merged into as part of the release flow, so might as well have called it release, I suppose).
Anyway, IMO it communicated "volatile and subject to change" a lot more clearly than things like "head of main" etc
I grew up with master before the master nonsense. It's ingrained in me. So i use that in my projects. Some projects i contribute use main, and i don't give a fuck. It just fucks up my memory muscle - but nothing that an alias doesn't solve.
Using master is stupid. Is your branch in charge of others? Is it more skilled than your other branches? Software engineering has too many crusty dorks that stick to their paradigms like it's their religion. Acting like it's their heritage to use outdated terms but also it doesn't matter so that's why they'll keep using it.
Calling an original, analogue recording a master does make sense, as all copies of it will by nature be of a lesser quality. This isn't the case for git branches tho.
The real answer is whichever is easiest. If you've got a master branch and it's a pain to switch, then I wouldn't do it. If you've got a badass coder who is disturbed by the terminology, then I'd say to do it to keep the peace. It depends on the situation.
My repos use main because i guess that was the default, but i don't really care. I mean i also call my window manager layout master/stack and i don't see what's wrong with that.
Personally I've come to hate main because it breaks habits easily.
I'm working 75% of the time on master repos, but then I might need to do a quick edit on a main repo and suddenly my git checkout master doesn't work.
Or even copy pasting scripts from one project to another can easily break if you forget to change the branch
The reason behind the change is pretty stupid anyway (I'm against slavery but it shouldn't be treated like a slur still)
Is use develop anyways. because main / master is for deployments only. When it comes to starting a new project, I don't give a flying horseshit of a fuck. I use whatever git sets me up with and due to terminal auto complete it's ma TAB either way. The way I experienced it, everyone with a strong preference towards either is an annoying shithat of a person who will be booted from my team the moment they start this debate.
For all the sudden word scholars here: there is no second word "master" that's spelled, pronounced, and written exactly the same as the other one but is entirely unrelated to the concept of master\slave. All modern meanings of the word master derive from the same root: magister, meaning an authority or teacher.
A "master recording" is the authority, the base copy from which all others are duplicated. They aren't called "slave" copies, although the primary use of the terms in computing did originally use those 2 words. Also as someone else pointed out, you don't even really make copies of git branches in the same way as audio so the term is misapplied.
Main is also a bad name, unless you're working on a solo project with only 1 main branch and some features. As soon as you start collaborating with other people, you should really have individual dev branches or "forks" (be honest, 90% of you aren't rawdogging git straight from the CLI, there's a forge website involved as hub) to work on, with an integration\testing "fork"\branch to combine work and a release branch for final code, with each discrete release tagged.
It's a master the same way that an original recording (the final version before mass reproduction) is called a master; mixing and processing the raw media clips into such a recording is called mastering. It's a convention that has existed long before computers were a thing.
Locking comments. Had a good run, over half a day, but this was always headed for an emotional train wreck.
mainin the streets,masterin the sheetsMommy.
about to start using mommy for all my projects now
MOAB (mother of all branches)
git checkout mommy
Ah, I see you're a degenerate of culture as well.
fork mommy
Checkout Mommy
It's a retroactive bastardization of the word based on one particular culture's one particular interpretation of it (master being, apparently, a slaveowner) that ignores both the much earlier meanings of master artisan or master craftsman (as opposed to journeyman and apprentice) and masterpiece (through which an artisan is recognised as a master), and the modern meaning of a master copy (like a master record in disc printing).
This isn't like replacing the "master and slave" terminology with regard to connected devices. That one was warranted because it was often inaccurate and confusing. But forcing the adoption of main instead of master feels like someone got offended on someone else's behalf because a word looked superficially like that other bad word, and apparently we can't have an understanding that goes deeper than what letters it's made up of.
Amerika ist wunderbar. This is an
--initial-branch=masterhousehold.regardless of that, it's never inconvenienced me and it's still a net gain in readability, since
mainactually means what it means. have my shell scripts set up to use either one for any repo I'm in automatically.Honestly it's not even about convenience. As far as breaking conventions go, this one has none-to-minimal impact -- existing
masterbranches won't suddenly become invalid. But it's yet another instance of a subset of a subset of a subset of users getting to enforce their sensibilities for superficial reasons, and ultimately with zero effect regarding the cause they claim to represent; cultural and linguistic differences be damned.I'd love to be more specific, but I don't want the comments to turn into a warzone.
And don't pretend like master doesn't mean what it means.
And don't pretend like master doesn't mean what it means.
Claiming that
masteron github stems from master recordings is not only disingenuous but also incorrect.As a FOSS alternative to BitKeeper, Git naturally reimplemented it's naming conventions as well - and because of the power of version control - we can actually check what the original meaning was derived from:
And yes I agree that GitHub just changing the name of the default branch while keeping their ICE contracts is performative as fuck - which imo means we should both boycott GitHub and use naming conventions that don't have a history related to one of the worst atrocities the global north has brought upon the world...
I concede the point about the word's origin... not that I've seen anyone ever refer to a branch as a "slave", nor do I think that it's appropriate given that the branches are not subservient to the trunk/master/main/etc until one is merged into or rebased onto the other...
I also wrote a whole-ass speech about the modern world's relation to the Atlantic slave trade and the guilt certain people are trying to inflict on everyone, but I know what the replies will be (we're just redditors by another name after all) and it's ultimately not a soapbox worth dying on. Anyway, my thesis is study history, learn its injustices, and learn how to do better effectively.
People: hey you should think about this a bit and consider changing it to have a small positive impact
You: 🤬
Nobody's forcing you to, nobody's yelling at you, if you don't do it it's not a massive deal, you're just yelling at clouds. Actually that's not entirely true; I'm yelling at you because of your absurd overreaction to the mere idea of being a little thoughtful.
I don't know if you got it from media, or you heard about this movement and for some reason immediately jumped to "they're forcing us!", but you really need to do some self reflection on why you got it so wrong and why you were so quick to do this outburst.
At some point needlessly banning words just empowers bigots by letting them claim larger and larger parts of the vocabulary. Shouldn't we try to reclaim words instead, and deprive the words of their power? Just "banning" words, especially in cases such as this one when the connection to master/slave is pretty weak, actually increases the negative power of the words and I'd argue empowers people with malicious intent
I struggle with SPI (serial peripheral interface). Two of the pins are MOSI/MISO (master-out-slave-in and vice versa). There are some alternative namings, but this one seems especially ingrained in embedded dev
YES, BASED
IN THIS HOUSE WE COMMIT TO MASTER
I get wanting to move away from "master," but why in the world didn't we use "trunk"
It was already a standard name, and it fits "branches," etc.
"trunk" is what it was called in SVN, too. Well, kind of. SVN didn't have a real concept of branching like Git does, but the main development would almost always happen in a root directory called "trunk".
I'm not sure why Bitkeeper used "master", but that's why Git called it that (Git was originally built as a replacement for Bitkeeper).
Fossil uses the term Trunk.
It's a Git-alternative that has github-like features built into it; Used by SQLite devs
Mercurial, too.
I would have loved to go back to trunk. Also main and master have different meanings.
I personally don't think the word "master" should be considered offensive - my wife has a master's degree in deaf education - but I've switched to "main" because that seems to be the convention now and it really doesn't have to be an issue.
There's no "slave" convention in git so I'm not sure how it can be considered an issue (I get that drives being master and slave is a bit icky). But then, what is it a master of?
As others have said, "trunk" would have been a more sensible replacement.
It's a master the same way that an original recording (the final version before mass reproduction) is called a master; mixing and processing the raw media clips into such a recording is called mastering. It's a convention that has existed long before computers were a thing.
(the image is a hyperlink)
On my app, tapping the image makes it full screen. I had to figure out how to get to the raw Markdown of the post and go from there.
For those who come after: https://slrpnk.net/comment/16864626
There's an actual response to the issue at hand in that link; man didn't just decide to drop a meme and peace out (though I probably would've assumed that was the case if it wasn't for the edit)
It's about master copy. You have a master copy, and you have the development copies that are a copy of the master which is where you make your changes.
If i had to guess, the problem is that people don't know how to use git and develop in the master
Honest question. I cannot see if you are being serious here. If this is a real thing, is it because of US slavery history? No way you are saying your wife has a main degree in deaf education?
No, I said I don't think the word "master" is inherently offensive - after all, my wife has a master's degree. But to answer OP's question, I've switched to "main" as my git branch because that seems to be the new convention.
I find "master" offensive, so I make sure I main bate instead.
My scrum master said that we need new tickets to update the git branches and pipelines to use main instead of master since master was a bad word.
I asked him what his job title was again and there was a pause.
Then he said we can't say that we are going to groom the code base anymore.
Switch from your scrum main to your scrum alt.
I'm gonna go ahead and assume your scrum main doesn't groom themselves.
If we are not grooming the codebase, are we then waxing it?
Or is it more eco-friendly to let the codebase grow wild and untrimmed?
I know someone with a master's degree from university.
Well, he cut me a golden master copy of the track, anyway.
"I main in science degree of Evolutionary Biology" has a weird ring to it.
I main Evolutionary Biology and have alts in Chemistry and Anatomy.
I kinda unironically dig this.
Nice
Trunk would be better because of all the branches.
Why master? main is much clearer
Why not change "walkie talkie" to "radio phone"? It is so much cleaner.
Because change for the sake of change always brings more work than what it saves.
Why change something that works and everyone recognizes it? Of course, if this debate was there when the standard was created...
no, new people learn git every day.
'main' is much clearer. It's maybe not the same readability gain as 'blocklist/allowlist' over 'blacklist/whitelist', but it's still there.
Why main? m is much clearer
we should make the empty string the name for the default branch
Just use
main. I'm not bothered by either, but I'm not in the demographic that would be bothered bymaster, so I usemainand STFU. It takes way less effort to switch tomain(if you haven't already) than to come up with all this rhetoric about whymastershouldn't trigger people.I would argue that it's best/easiest to leave existing projects on master, and just use main for new ones. Either way I agree, people arw reactionary af about this issue
That's why we switched, on both closed- and open-source projects. There's just no winning an argument that puts you on the same side as racists.
At one point I was considering how, if someone asked on one of our public repos, I'd say "no" but at the same time post a receipt for a donation to the NAACP just to prove I wasn't racist. Thankfully I realized how stupid an idea that was before it came to that.
Performative wokeness is a cancer, man. Did any of this arguing and vitriol actually help any marginalized group in STEM? I really fucking doubt it.
I can work with either, but I cannot and will not forgive any deliberate changes from main to master.
If you have a main and a master branch in the same repo and you don't delete one at the very start of the project, God has abandoned the living bcz we're lost and he has forsaken all that is good in the world.
I didn't mean both simultaneously in the same project, lol.
You monster! There are children here!
This one, officer, this one right here.
Master_blaster
I did that once... Because a script I worked with was hardcoded for it and was distributed as a binary...
Main.
Don't get me wrong, the whole debate is Microsoft just being performative (why not use your vast wealth to actually help people?). But honestly, putting the debate aside, "main" is just a clearer and more intuitive name.
I think it's the same with blacklist/whitelist -> blocklist/allowlist.
Itallowlist/blocklist actually says what it does in the name without using the idea of racism and white supremacy. I wish more software would just use these terms by default. (maybe some aliases for the old names)The problem is that "master" means several things. There is Masters degree, master sword, master blacksmith, master copy, all of which have absolutely nothing to do with master / slave.
The Git "master" terminology came from "master copy". There's an email thread online where someone asked Linus Torvalds the origin and this is what he said.
The whole thing about it being about master / slave was some random uneducated person guessing, and they were wrong.
I agree that main is simpler and clearer, but it has nothing to do with racism.
Clarification: the "it" in the second sentence was referring to "blocklist/allowlist" specifically, not "main"
Of course the name "master" in the git context may mean something completely different from slavery or similar, but the possibility of misinterpretation is IMO another (maybe small) reason that new projects should consider using the clear and unambiguous "main" instead of "master".
The origin of the words blacklist and whitelist doesn't have anything to do with racism. If someone looks around and only sees racism, then who is the racist?
Even if the word's origins aren't racism, I hope you can see why having a blacklist with "bad" things on it that won't be allowed and a whitelist with "good" things that are allowed maybe isn't the friendliest terminology. (especially when there are more intuitive names available that avoid this problem)
Some would argue it's culturally imperialistic to impose US cultural sensitivities on the rest of the international English community. Wasn't the inventor of git Finnish? The entire world uses git.
canonLove it 😆
No one commits to
trunkanymore....I think you are onto something. Especially Mastodon devs are losing so much.
The default branch for some projects is "production" since CD deploys on pushing to that branch
For new projects, main. My thought is that even if master is not offensive, since the industry has generally made the change, the only reason to stick with master is stubbornness or hating political correctness, neither of which aligns with my self-view so I'll use main and move on.
In general if people are genuinely hurt by the use of some words, I'm not sadistic so I'll avoid using them. From my perspective morality is the pursuit of the reduction of suffering, even if that suffering is internal.
I mean, the problem people have with it isn't a name change or improving inclusivity. It's the fact that they feel like they are being bullied into doing something they had no input into in the name of inclusivity. What pisses people off is how, as soon as someone says "x" isn't maximally inclusive of some marginalized group, everyone has to change or else get called a categorically bad person.
For example, suppose you have a red hat that you enjoy wearing. You got it at wafflefest a decade ago, and it says "I <3 Waffles". Then one day, your boss sends out an email that no more red hats are allowed in the office because it might create an unwelcoming environment. You will, of course, be pissed off. Not because you can't wear your waffle hat anymore, but because your boss feels entitled to control the minutiae of you life like this. You'll think to yourself "fuck that guy, and fuck whoever brought up banning red hats in some corporate board room 1000 miles away. This is bullshit!"
People like their autonomy, and don't like being controlled. Doesn't matter if it is in the name of increased corporate profits, or inclusivity, or saving the bees, or dying of lung cancer. They don't care about the name of their git branch - they care that they feel like they are being forced to change it.
That analogy doesn't really apply though. The decision to change master to main was a collective one, not made by "some corporate board room 1000 miles away". It may feel like that's how it went down because you only noticed when GitHub changed their defaults or whatever, but that decision was not made in a vacuum, it was the result of lots of people saying "hey, this is a problem, let's fix it" for a long time before any actions were taken.
No one is offended by that word, at some point we need to stop wasting time on pointless debates and move on. If I start tweeting that I find "main" offensive are we going to have to find another name?
Don’t forget laziness. I have some projects that have been around forever and I am not changing it across my infra because I am lazy. I will do it next year…
That's a sane position. Only issue is that this have nothing to do with the question, and the people that were the most vocal about this issue had no business talking about it in the first place.
Ultimately, git is flexible; beyond some potential local and shared automation, anyone can call their local branches however they want, regardless of other and servers. Personally, changing years of habits and tooling (that probably should not have hardcoded some names in the first place) is not worth following a change proposed by misled people.
Do you have any evidence that "the industry" has made the change? My personal experience says the opposite. Unless you mean "new repositories use the new default name" which says more about people simply not caring rather than anything else.
Whatever the repo is setup with.
master
I grew up with master, and main just feels weird.
I always rename my branch to main. Because it's shorter? That's the extent of my reasoning. Thanks for coming to my ted talk.
Master. I find the whole "reasoning" behind the controversy absolute horseshit peddled by nontechnical people on the sidelines
Just that master doesn't actually makes much sense in most git workflows.
If you understand master like you would understand the master/slave relationship in old tech, then of course, master seems to make sense until you realize that there is no slave in that sense or in name. Additional, master is rarely doing anything but having release or hot fixes being merged into it. Arguably dev is the master of the branches.
In other words, master was always a bad name. It is silly to rename it because "racism" but it is at least equally silly to act like master is a much better name than "main" or "live" or "prod" or ... Fuck, the list is long.
Based. We need to make music industry use Main records and not Master records from now on!
"Trunk records" for indie music seems 110% appropriate to me.
https://www.etymonline.com/word/master
This is not to say that the term predates slavery and is neutral today in pejorative terms.
Music used it because the original is of greater quality. The term is technically and syntactically correct here.
Slavery used the term correctly, extensively and horribly. Honestly, it tainted it.
Most of the people who say it's no big deal or they don't care have ancestors who were on the unimpacted or positively impacted side of slavery. Very "let them eat cake" tones. (even though that story itself is a misnomer)
To be perfectly honest, the term in its etymological roots doesn't fit well in the digital age for common use cases. It's fallen into common parlance from the analog era, when it had a more direct meaning. Even though it's not regularly being used as a pejorative, there's (not zero, but) little harm in slowly phasing it out for better, more accurate terms like main or trunk or origin.
I hate to tell you this, but that's a fascist argument using tradition to block out change and accepting others. It's a screw those other races/religions history and feelings because it makes me feel less powerful kind of statement. I doubt that's your intent, but there it is.
https://en.wikipedia.org/wiki/Master%E2%80%93slave_(technology)
You know that master has multiple meanings?
Master of a slave is one of them.
Master is also the title you get when you master sth.
So the thing is that master was probably a thing before slaves were invented (I guess).
Like, before the invention of agriculture?
Master debater
Ding ding ding. Trend-hopping C-suites pretending to give a fuck because DEI or whatever.
No gods no master branches
Let's call it the kelda branch!
ma<tab>*tabs Fedora*
domIf it uses
masterand it's too much trouble to get people to switch. It staysmasteruntil we can coordinate.If I'm starting a new project I use
main.Why?
It doesn't take much to do and it avoids any misunderstandings or arguments and we've got work to do. I don't particular care if you guys are "stuck" on
master. If that's what it is and everyone wants to keep it that way, I don't have enough will to change it. If it's under my control, I will change it.You know what else avoids arguments? Not hiring people who start arguments over token bullshit.
I will just say that things in tech change a lot in general. That's just the nature of it.
If I can do one small thing that makes people feel better, then why wouldn't I do it?
I don't necessarily see that as a connection to a measure of competency. It seems you do and you probably have good reasons to believe so and I would say that I haven't experienced that.
I see mostly people defending master starting arguments. I've never seen anyone pushing for main get even half as mad as some of the people coming up with a reason why it's stupid. Like, holy shit guys, just don't change it and move on, why be so mad about it?
I don't care which one you use, just don't change it once it's established. So many legacy Yocto projects got broken cause open source libraries changed their branch names.
This was one of the arguments when the renaming was first proposed. "Just rename it, it won't break anything! It's only racists that want to keep the name!"
Sure, except for all the CI/CD scripts, release scripts, etc that all have "master" there and are now broken.
I know of a company that their entire CI pipeline was broken overnight because some "helpful" person renamed the branch to master but didn't bother checking out their pipelines...
Sounds like the sort of simpleton that would find "master" offensive.
Trunk
I too am working on a repo that predates git.
I'm naming my production branch
goshujin-samalive / staging / dev
"Obey your master! Master!"
Imagine darth vader calling palpatine main
Obey your main
Last place of employment had
developas the default branch. Actually quite liked it. (There also was a main branch, which only got merged into as part of the release flow, so might as well have called itrelease, I suppose).Anyway, IMO it communicated "volatile and subject to change" a lot more clearly than things like "head of main" etc
The pro versions: dev, rls
master.
I grew up with master before the master nonsense. It's ingrained in me. So i use that in my projects. Some projects i contribute use main, and i don't give a fuck. It just fucks up my memory muscle - but nothing that an alias doesn't solve.
EDIT: and btw, fuck github.
both. but majority are master cause that's the default and I'm too lazy to change nor do I really care.
I use master in all my projects
I save my code as .txt files on my hard drive.
They follow the naming convention "project1", "project1a", "project1a1" and so on in consecutive logical order
I believe that's called goblin mode (production_code.final(2).txt)
Using master is stupid. Is your branch in charge of others? Is it more skilled than your other branches? Software engineering has too many crusty dorks that stick to their paradigms like it's their religion. Acting like it's their heritage to use outdated terms but also it doesn't matter so that's why they'll keep using it.
https://en.m.wikipedia.org/wiki/Master_recordings
Calling an original, analogue recording a master does make sense, as all copies of it will by nature be of a lesser quality. This isn't the case for git branches tho.
I don't think the word "master" is indicating quality though, just that it's the "source" or "basis"
The name have nothing to do with being in charge of others, skill level, or anything, but, sure.
The real answer is whichever is easiest. If you've got a master branch and it's a pain to switch, then I wouldn't do it. If you've got a badass coder who is disturbed by the terminology, then I'd say to do it to keep the peace. It depends on the situation.
mainline
Zeus
No one messes with release for the "final" merge?
After that... Main.
Catch and Kill. Trap and Release. It's slavery all over again! We must fight back!
My repos use main because i guess that was the default, but i don't really care. I mean i also call my window manager layout master/stack and i don't see what's wrong with that.
Personally I've come to hate main because it breaks habits easily. I'm working 75% of the time on master repos, but then I might need to do a quick edit on a main repo and suddenly my git checkout master doesn't work.
Or even copy pasting scripts from one project to another can easily break if you forget to change the branch
The reason behind the change is pretty stupid anyway (I'm against slavery but it shouldn't be treated like a slur still)
Eh, I mix and match them..
Develop
main-master, with all branches being non-main masters. No slaves in my neighborhood.
Is use
developanyways. becausemain/masteris for deployments only. When it comes to starting a new project, I don't give a flying horseshit of a fuck. I use whatever git sets me up with and due to terminal auto complete it'smaTAB either way. The way I experienced it, everyone with a strong preference towards either is an annoying shithat of a person who will be booted from my team the moment they start this debate.For all the sudden word scholars here: there is no second word "master" that's spelled, pronounced, and written exactly the same as the other one but is entirely unrelated to the concept of master\slave. All modern meanings of the word master derive from the same root: magister, meaning an authority or teacher.
A "master recording" is the authority, the base copy from which all others are duplicated. They aren't called "slave" copies, although the primary use of the terms in computing did originally use those 2 words. Also as someone else pointed out, you don't even really make copies of git branches in the same way as audio so the term is misapplied.
Main is also a bad name, unless you're working on a solo project with only 1 main branch and some features. As soon as you start collaborating with other people, you should really have individual dev branches or "forks" (be honest, 90% of you aren't rawdogging git straight from the CLI, there's a forge website involved as hub) to work on, with an integration\testing "fork"\branch to combine work and a release branch for final code, with each discrete release tagged.
No gods, no kings, no masters!
personally I use emojis for branch names. it makes things way clearer.
🤡 is the master branch 🛩️🏢 is dev
Master make no sense. It fail to comunicate what role the default branch serve. Main is clearer, your default branch is the main one.
It's a master the same way that an original recording (the final version before mass reproduction) is called a master; mixing and processing the raw media clips into such a recording is called mastering. It's a convention that has existed long before computers were a thing.
All the people defending master-slave terminology in the comments 💀💀💀
Look it up, it was used in Bitkeeper that way iirc