Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think a critical one would be: init.defaultBranch master

Especially since places like GitHub are making main the default unwittingly



I switched to trunk back when the witch hunt started raging. Fossil uses it, it's the original[0] term, and it completes the metaphor. What do the branches branch off? Why the trunk, of course.

As a matter of policy, I refuse to be swayed by the opinions of busybodies as to what is or isn't offensive. I will continue to use blacklists, for example, but am happy to retire the master/slave pairing: it's not a great metaphor to begin with, and a reasonable person can see where those of recent descent from the enslaved might take exception to it.

There's nothing at all wrong with having a master branch, either, the metaphor is entirely anodyne and no honest person takes umbrage at it. But that whole absurd episode got me thinking about the nomenclature, I had been working with Fossil on a hobby project shortly before, and figured that if there's another word which I prefer, I may as well take the opportunity to switch.

[0]: https://en.wikipedia.org/wiki/Branching_(version_control)


>I switched to trunk back when the witch hunt started raging.

>As a matter of policy, I refuse to be swayed by the opinions of busybodies as to what is or isn't offensive.

Well, you have said multiple ways that you have been swayed. I agree with you about all of this whining and word-policing coming from people who have dubious intentions. Nobody sane is offended by these terms. It's just a way for "victims" to seek clout and bully everyone else.

Fossil is cool but alas it will never be mainstream. It does have some nice features, but there are technical downsides such as storing files in a single binary sqlite database (which is a benefit for small projects, but a bad solution for large projects). If nothing else, backing up Fossil repos will take an ever-increasing amount of space compared to an equivalent git repo, as git repos can be backed up incrementally.


> Well, you have said multiple ways that you have been swayed.

I tried to address this in my first post, but don't mind elaborating.

I think trunk is the better term. I felt that way before all the absurdity surrounding master branches, but not so strongly that it had even occurred to me to set it as a git default and migrate my projects to use it. The sick power games of moral busybodies were causal in the sense that it started "a conversation" (ugh) about branch naming, with the result that I now use trunk on my own projects.

If I had stuck with master despite preferring trunk, just to show them what's what, that is also being swayed by the opinions of busybodies, just in the other direction. The busybodies of the world also want me to wear a seatbelt, after all. We have a confluence of wants there.

Similar deal with referring to various software components as slaves. I find that distasteful. I didn't need the language police to raise that topic to have that opinion. It's not even a good metaphor! Should I insist on using it just because the people who throw a hissyfit about blacklists share my dislike for that terminology? That is also being swayed by their opinions.

Anyway:

> Fossil is cool but alas it will never be mainstream.

Indeed, a nice bit of software, pleasure to work with. Rather too narrowly tuned to D. Richard Hipp's needs to be mainstream. I proposed on the Fossil mailiing list (right before they shipped a built-in forum) to separate the core features into a libfossil so people could use it as a component of other systems, but for a few reasons (which I found persuasive fwiw) they don't plan to do so.

I would still like to see pijul displace git, but as the years pass the odds of that steadily decrease. Ah well.


I used to find git slightly confusing as well, but it just takes a bit of patience to learn. The last thing we need is a dozen roughly-equivalent VCS tools to worry about, so I'm sticking with git. People can come up with aliases or something for people who don't get it.

>If I had stuck with master despite preferring trunk, just to show them what's what, that is also being swayed by the opinions of busybodies, just in the other direction.

This is pretty subtle. I would discourage the use of unconventional names for your branches, just because it creates more confusion. Were you influenced if you kept things the same because you didn't like the idea of change or the messengers asking you to do it? I guess technically, you could be psychologically influenced and not make any actual change. But to other people, your state of mind is not the object of interest, especially if it produces no outcome. They only care if you made the change or not. Thus, if you were not persuaded to change anything, then you weren't influenced.

>Similar deal with referring to various software components as slaves. [...] It's not even a good metaphor!

It is a good metaphor in fact. Slaves are workers that take assignments from their owner (and not others), among other things. At least in some contexts, you could list several things that a master/supervisor does that directly mirror how human slaves operate. If it was a bad metaphor, semantically speaking, then people would be legitimately confused when it was used. Nobody ever said they found it confusing before the language police rolled up.

I will admit that having "slave" stuff is perhaps in poor taste. You could make a far better case for that than the use of the word "master".

The trouble with all of this is, language policing is not primarily about the words. We won't be rid of the language police after making the suggested changes. They want power. Language and preferences are coming full circle to where "colored people" is bad but "person of color" is good, segregation and discrimination are ok again (especially to the exclusion of whites), etc. Martin Luther King would be appalled at the modern left.


> I would discourage the use of unconventional names for your branches, just because it creates more confusion

trunk has been the conventional name for the trunk branch of version control systems longer than anything else. "Child branches are branches that have a parent; a branch without a parent is referred to as the trunk or the mainline." https://en.wikipedia.org/wiki/Branching_(version_control)

git provides a way to determine which branch is the trunk, which it calls the default. Software which tries to guess at this is already broken, and for software which does it correctly, the name itself is completely irrelevant.

> It is a good metaphor in fact.

I disagree. In databases, for one example, what was conventionally called the slave is a replica. Is a slave a replica of his master? No, that's absurd. There are contexts in which one part of the system controls things, and the other is purely responsive or helpful, and I will grant you that in those cases, master/slave is a coherent metaphor, but the word "servant" can be used without loss of expressive power, and I see adequate reason to prefer that usage. In most cases where master/slave is used, master/replica or primary/secondary are in fact clearer than master/servant.

> The trouble with all of this is, language policing is not primarily about the words. We won't be rid of the language police after making the suggested changes.

Well yes, of course, we agree vigorously on this. I ask you: how does one grant these control freaks the least possible power? Clearly bowing to their every whim is a losing approach: if someone wants to pick a fight with me about the use of the term "blacklist", very well, they'll get their fight, because I won't stop.

But making a point of using terminology just because they don't like it is granting them a certain power as well, through the very act of rebellion. I genuinely think trunk is the best term for a trunk branch, so I use it. If you think master is better, I will disagree, and say no, trunk is better! But I won't call it offensive, that's just silly.


>Well yes, of course, we agree vigorously on this. I ask you: how does one grant these control freaks the least possible power? Clearly bowing to their every whim is a losing approach: if someone wants to pick a fight with me about the use of the term "blacklist", very well, they'll get their fight, because I won't stop.

I've been wondering about this myself. It seems to be part of a communist-adjacent power grab. The objective is to install useful idiots in all the right places so certain people can use fear to keep others in line, and ultimately advance more ambitious agendas of oppression. I'm still doing research on this subject. I just found a blog today at https://newdiscourses.com that seems dedicated to fighting this fight. It's relatively high-IQ stuff.

Anyway I agree that "trunk" is a better name than "master" or "main" for a new version control system, at least if it uses "branch" terminology. But git has been established for many years and we are only talking about an inconvenient change because of activists. Simply ignoring the activists and continuing as usual is not "granting them power"... Unless you are making a change away from something else over to "master" naming lol.

Unfortunately, there is no consistent meaning for what the master/main branch actually is out in the wild. It could be the stable branch or it could be the development branch, or it could be an old ref retained out of fear by someone who decided to jump on the renaming bandwagon. But I think for developer-centric projects, master is the stable dev branch. For user-centric project, it is often the last stable release branch. Both of these make sense.


> I would still like to see pijul displace git, but as the years pass the odds of that steadily decrease. Ah well.

Why would that be? Pijul is getting better, simpler and faster all the time.


Nearly everything and everyone uses git, and git is awfully good. If you have to learn git already, why would you learn a tool that is 10% easier than git, probably slower, and alien to everyone else? Ultimately, you can't make them share your enthusiasm for a tool that is just an incomplete imitation of something they are already expert with.


I use main just because it's shorter than master.


Agreed I have this in my gitconfig. The changing of this setting caused more damage than "master" ever did


Wait are you saying to keep the default branch as master explicitly?


Yes, I do it too. 'master' is too ingrained to change and has nothing to do with slavery or anything sinister IMO. If I ever work with someone on a project we're in control of who feels otherwise and affected personally then it won't be much effort to change it. Until then I don't need to pointlessly spend effort rewriting it when I get it wrong on my own projects. (It only affects what git init does.)


I was used to typing "master", too. I also think a bit much was made of using "master" (although using it together with "slave" in other contexts does kinda highlight the problem people have with it).

But you know, some people around me strongly dislike calling it "master". I don't have strong feelings about it. They do. Their desire to call it something else is far greater than any desire I might have to not to. Switching to "main" cost me nothing, saves a couple keystrokes, and makes other people happy. Fine, let's do it.

If you want to use "master" on your own internal projects, go for it. No one's stopping you. I definitely wouldn't use it on a shared project because the potential cost of irritating someone isn't worth it. And because I don't want to have one set of muscle memory for my own projects and another for shared projects, I just use "main" everywhere.


Are the people around you who strongly dislike "master" genuinely offended by it, or are they more akin to the virtue signaling busybodies mentioned by a comment above?


I’m sure there’s at least some of the latter, and I haven’t heard anyone in the same physical room as me saying they were personally deeply offended by it. I heard some online people who seemed genuine say that this was something that bothered them a little bit each day at work, and they asked if we could collectively use another word. It didn’t seem like an unreasonable position that someone would have to go out of their way to be offended by.


I might feel that way if work had felt the need to switch (or started after the default changed), but as it is I spend most of my time with master, so using that for projects that I init only increases that majority.


I found that `main` was actually easier to type and say than `master`. You should keep doing what you're doing of course. But now that the change is becoming popular, I'm happy to keep using it, even in the absence of any particular moral reasoning.


Indeed "master" comes from "master copy" which is the version of the "teacher" (magister) from which students copy a work


Yes, and as it happens, “master” was a bad metaphor for what that branch actually is and does. It would have been a better metaphor for what is usually called “origin.”


It's not a bad metaphor at all. I've never met anyone confused by it. People want to change it because of the political grifters, not for want of clarity.


I am aware of the reasons why people decided to change it, and I am choosing not to argue about that here. I am, however, insisting that it is a bad metaphor. We all learned it the very first time we opened a git tutorial, so we accepted it as the way things were. But I am old enough to know what we meant by “master” long before git existed. Its meaning was not “a template you can use as a pattern for new work,” or “a branching point that many derivative works have in common.” A “master” is “a pristine original copy you can make many copies of.” Think about it.


You're not wrong about the "old" meaning of "master" but in most projects, the master branch is expected to function and be reasonably up to date. So it is a reasonable jumping off point for both deployment and development. Consequently, Linus didn't make a mistake with that, and it is not a bad metaphor. There are many projects that don't work this way because they chose to violate conventions. That does not mean "master" is a bad choice of name, it means people are not conforming to the original pattern. Any other "main" type name would suffer from the exact same workflow dependence.


"main" isn't a better metaphor


It has nothing to do with slavery yes, but main is shorter to type. It didn't take much effort to switch when I started working in a project that used it.


> 'master' is too ingrained to change

This typifies why the US still runs on imperial units, not metric. Don't crush that dwarf, hand me the 16mm pliers.


Well sure, except metric has big advantages over imperial, whereas `main` is very very slightly easier to type than `master`...


Feels like QWERTY users will save a useful amount of wear and tear on their left hand. I don't want their life to be any worse than it already is.


IIRC if you don't do that, it will spam you with "the default branch is master, it may change" every time you make a new repo, so you have to set it explicitly to get rid of the nagging.


Funny how nobody talks about the aftermath of switching to “main” - did it achieve its original goal? No papers written on it, no researches. Like nobody wants to admit how stupid it was to push for it and insult those who resist it (which ironically achieved the opposite goal of making things more toxic instead of “inclusive”).


DEI is proven to divide people. That's why it's embraced with both arms. Switching the branch names has probably wasted tens of thousands of hours of maintenance work in the world. I doubt if there are even a dozen people in the world who were actually offended by the term master in that context or even the master-slave pairing in others. But there are probably hundreds of people at least (out of millions of developers) pretending to be offended for clout.


I have witnessed several outages caused by switching from master to main. Think nobody in a company with thousands of engineers could commit code for half a day.

It really isn’t worth it. I can agree with using ‘main’ when making new repos but trying to shoehorn ‘main’ into existing stuff is a giant pain for little to no gain.


Yes. GitHub really overstepped the mark by pushing main onto unwitting newbie devs. Really not cool. Almost like they want to control people or something.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: