So creating a new repo on GitHub, you get a set of getting started steps. They changed the default branchname to “main” from “master” due to its connotations with slavery.
When I create a new repo now, the initial getting started steps recommend creating a branch named “master” as opposed to “main” as it was a while ago.
It’s especially weird since the line git branch -M master
is completely unnecessary, since git init
still sets you up with a “master” branch.
Disclaimer: I have a bunch of private repos, and my default branchnames are pretty much all “master”.
Is this a recent change?
Edit: Mystery solved, my default branchname is “master”. Thanks bamboo@lemmy.blahaj.zone !
is it though?
I treat the master branch as the master record. it’s the branch all other branches are made from.
calling it main is overly generic. main to what? the repo? the main feature being worked on? are there multiple mains like in mains voltages?
master seems far more concise. when you think of it like a stateful record.
plus all my pipelines are configured to use master. I would have to rewrite 70+ pipelines just to convert to main.
not worth it.
It’s just a word at the end of the day. To me “main” is literally a shorter word that means the same thing in my brain. It could be “trunk” or “release” or whatever else you’d like. “master” makes some people uneasy, so it seems like a simple solution to pick a different word.
The development community talked, informally settled on main, and here we are. Anecdotally it took me more time to write this than to switch most of my projects over. I use GitHub actions and a simple find/replace for a word not otherwise commonly used was the ticket.
I really don’t care what other people use at the end of the day. Discussing version control and branching strategies drains my life away. If it is difficult to switch, don’t, but if you start a new repo it is worth thinking about for a moment.
so which is it?
if it’s just a word then it shouldn’t matter if “master” is used.
if you don’t care, then keeping “master” in use won’t bother you.
why should I think about it? you said it doesn’t matter and you don’t care.
regardless, I’ll keep using master because its a master record. not a trunk, not a main, and why would anyone call their branch a “release”? wouldn’t that get confusing when you do actual releases or tagging?
You seem like a delightful person to work with. I’m just saying be pragmatic and maybe try not to be a dick about it?
I am a horrible person to work with because I demand from others what I demand of myself.
if it takes me an average of 60 minutes to update each of my 73 repos, rules, and pipelines, and accounting for 25% more time in post pipeline issues; a “simple branch rename change” would cost me an estimated 92 hours of effort. just over 11 days of work.
is it worth the efforts? I think not. would my boss allow me to do it? not only would they not let me do it, they would laugh me out of the building and take my key card.
should I change how things are done from this day forward? let’s ask a different way.
what harm could be done by segmenting standard pipeline configurations? new documentation would be needed, then maintained.
then the question becomes what’s the best way to maintain two branching strategies? when new devs start, will they understand the nuances between strategy A vs B? what happens when they open PRs for main on a master repo?
so now…a simple name change becomes far FAR more complex when you look past the initial change request.
Also, I’m not a dick. I’m just pragmatic.
It’s always eye raising when someone takes umbrage with using main over master.
Like … awfully weird hill to die on, you’re kind telling on yourself some.
what exactly am I telling on myself with?
That you’d be a bad teammate: the kind of person who puts personal preference above what the group has decided and causes problems for no good reason; the kind of person who would insist on indenting with spaces when the whole team has decided to use tabs.
nailed it lmao
L+Ratio+“I know what I’m saying makes you uncomfortable and wields power over you, and you should let me wield that power over you”
what’s hilarious to me is none of you realizes that I might not be white. you’ve judged the color of my skin entirely based on an opinion that conflicts with your perception of what a person of color would have. last time I checked that’s racial profiling, which is racist. so…who’s trying to impose power over whom here?
regardless, I vehemently deny that I want to use “master” to force my will onto others (outside of maintaining a standard branching strat). as I have stated previously, the hourly cost to convert master to main is far too high to consume and too frivolous of a change to piecemeal out over the next three years.
until HR is ready to explain to the executives why I can’t deliver the features they want this quarter, it’ll stay as “master”.
The only statement in your ridiculous rant that has any validity is that of your legacy pipeline configurations. But pipelines need to be updated and validated semi-regularly and should be generalized to begin with, so it’s not really any good point that your legacy pipelines cannot handle a default branch name change like modern pipelines should.
Swap main and master in your comment and it reads the exact same with all the same shallow justifications.
Thanks! It sure makes me want to have a civil discussion with someone who belittles my opinion and reduces it by calling it a “rant”.
I’ll extend you the same courtesy as you have me.
Not if you’re doing it right. sad shitty devs hack together pipelines that require constant maintenance. I’ve got pipelines that have worked flawlessly for over 7 years yet other projects I don’t own are constantly running into problems deploying because their pipelines were “configured for last release”.
Wrong again. Pipelines do the thing they are supposed to do and do it extremely well. are you sure you know what you’re talking about?
yeah fuck me for creating a pipeline for each of my environments that have dedicated branches. fuck me for setting a standard and adhering to that standard.
if you need to switch your branch on your pipeline regularly you’re not following proper branching strategies.
you may be right, but the same could be said for literally any comparative opinion.
lmao nothing you’ve said has anything to do with “Main is more concise and less problematic”. Just because you created more work for yourself by having 70+ pipelines that need to be rewritten for a branch name change doesn’t mean it’s less concise or more problematic. It means you messed up by not having a pipeline capable of such a basic feature – generalized targets with a separation of concerns. Standards change, requirements change, so do build pipelines. Being stubborn is not a reason against changing colloquial terms out of respect and growth in understanding.
When’s the time you changed branch names after creation? Master to main is the only time for a lot of devs
colloquial terms? these are terms that describe technical standards that have likely been around longer than you’ve been alive.
Imagine if your doctor one day said you have rectumbabados instead of colorectal cancer because the word “cancer” is too triggering.
that’s the problem with young inexperienced devs these days. they just don’t get it. standards aren’t meant to change. standards are meant to adapt and evolve. forcing a frivolous name change on a branching strategy all for corporate to check their “social responsibility” checkbox is not evolving. it’s not adapting. it’s corporate grandstanding and literally is meaningless. like Target saying they support LGBTQ+ and then yanking all DEI support.
I maintain enterprise solutions. I hold myself to a higher standard than you might and have proven my worth through consistent delivery. my builds take minutes. my deployments take minutes. my counterparts take an hour or more to build and deploy. if I were to do whatever the fuck you’re doing I would be out of a job.
get some real experience before you go hotdogging with that tiny wiener you call expertise.
Again, you’re conflating your own stubbornness with correctness and that just ain’t how it goes. Branch names are frivolous. So much so that changing the strategy or retargeting a branch one time shouldn’t be such a nightmare for your pipelines that you have to pretend like you’re the big dick on campus spouting accomplishments when someone mildly suggests there’s a mistake in your thinking. Look inward if you’re so upset by this that you have to make up irrelevant insults in a vague attempt to protect your own ego, then go fix your pipelines to make it easier to do for the next person after you’re gone.
@astrsk@fedia.io
@HK65@sopuli.xyz @normalexit@lemmy.world @GreenKnight23@lemmy.world
The posts you are replying to ha e been deleted. I’m really currious what they said because we have one vendor who claims to be/is locked into usung “master”. This either requires us to write CI that merges main -> master and mirrors master back to main or use master. This can confuse junior devs once or twice, but it is really not an issue. The ONLY time I felt compelled to use master because of this vendor was when working with a group using GitLab. GitLab has a feature called Pull Mirroring that is MUCH more reliable than a pull/mirror action in GitHub that does the same thing, but to use that the branch names had to be the same.
I see both sides of this argument. The master/slave relationship in tech is NOT like masterworks or mastering a craft. It is based on one “owning” the other, but I don’t think that allowing technology to work that way is violating its rights. Obviously changing the name doesn’t change the behavior and isn’t it really only when that behavior is applied to people that we have a problem with it?
I never fully supported the effort required to change, but I’ve also never written anything in a way it would be difficult to change. I recognize that it could be considered a micro aggression, but it’s not like we are going to stop ants or bees from treating other classes as forced labor. Slavery exists. It is bad when applied to people. It accurately describes tech. Changing the name of the master db or branch did NOT free the slaves.
It was someone ranting about the many hours and days of lost productivity and cost of manually switching over 70+ legacy build pipelines all because of a branch name change. Also lots of condescending and insulting language from someone who thought their stubbornness and “standards” meant they were better than everyone else. Honestly I just probably set them off in my first message and they wouldn’t let it go, leading to increased levels of ranting and insults from them attempting to spout accomplishments while detailing their failings in the same breath. Admittedly that above description is a bit belittling from my end, I’m just annoyed they couldn’t keep their messages up for all to see.
I still stand by the opinion that changing branch strategies, names, or targets should not be a multi-hour multi-resource process and if it is, that’s a failure of the systems engineers / ops who put together such a plan. It’s possible to have CI/CD pipelines that run for years on end attached to critical infrastructure while being flexible enough for such simple config changes and maintained by one engineer.
Wait, this is a thread about branch names in git. The “master” in question would be more akin to a “master recording” from music, not master/slave software or system architecture.
While it may be true that the master branch is more akin to a master record, not everyone knows the nuance and quite frankly it doesn’t matter, if it makes people uncomfortable then it shouldn’t be a problem to accommodate a simple change, most of the tech world has already done so. Computers used to have a literal slave/master relationship with hardware components and control systems and we moved past that just fine despite still having controllers and actors everywhere.