News for hackers. Stuff that matters.
Re:What is a fork, and how GitHub changed its meaning by 3JPLW on Friday May 24, 2019 @02:55PM (#20004304)
Yes, I did read that. But what is Linus' branch then, and why do folks aim to "upstream" changes to it?

I'd argue that the other important Linux sources are _themselves_ cathedrals, each with their own form of centralized leadership — be it an individual or a group (like a distro or company). And these cathedrals happily work together.

You can totally have this model with GitHub.

Re:What is a fork, and how GitHub changed its meaning by Sir_Cmpwn on Friday May 24, 2019 @03:02PM (#20004366)
I see your point. I alluded to a similar idea in an older draft which suggests that bazaar/cathedral style is a spectrum, with most projects not falling entirely within either camp, but clearly having more elements of one model than others.

I think that GitHub actively encourages the cathedral model, though. It is possible to use either style on either platform, but the fork/PR model seems to me to be explicitly designed to strongly favor the cathedral model - to the benefit of GitHub's centralization goals, even if obliquely.

Re:What is a fork, and how GitHub changed its meaning by 3JPLW on Friday May 24, 2019 @04:13PM (#20004886)
I still respectfully disagree. If GitHub really wanted to deceitfully name this feature to foster the cathedral model they would have gone with "branch" instead. In fact, I recall them getting quite a bit of push back for naming it "fork" because it has historically been a pejorative term. Even further, I believe the actual operation is implemented as a branch on their backend for efficiency's sake. So why go so far as to call it a fork?

Well, because you can treat it as a fully maintained source tree itself (and participating like a member in a bazaar). It's easy to turn on issues locally, add collaborators, accept pull requests, and trade commits back and forth between the forks. Now, yes, GitHub does by default "link" it to the upstream repository and it even keeps tabs on how its history differs, but I'd call these features that reflect real use-cases.

Also amusing is how the repositories on kernel.org describe themselves; 149 use the word "fork". Sure, it's probably partly due to how GitHub uses this terminology, but I'd say it's a good thing that forking is no longer pejorative by default — now it's a "hard fork" that's a bad thing.

Re:What is a fork, and how GitHub changed its meaning by usrusr on Friday May 24, 2019 @05:34PM (#20005480)
Without github's "fork" branches we would most likely still see repositories initialized from plain source dumps popping up all over the place, just like in the days of nondistributed VCS.

There is no technical reason to do that, but that is insufficient in presence of social reasons: Someone wants to exploratory tinker around, maybe scratch some personal itch. No problem, check out, go wild in the working copy. Pretty soon they want it backed up in the cloud, maybe transfer it to another machine. VCS to the rescue. But do you want to create a branch on the official repository? Hell no, definitely not ready for that. git veterans will casually add another remote (and even that won't be as good as a branch/"github fork"), but a lot of people would choose the devil they know, rm .git and reinitialize. Everybody loses. The forker loses history, easy merges from upstream and almost all chances of getting merged back into upstream. The project loses a potential committer and general overview of what is going on at the fringes. Github wastes traffic and storage and loses the moat that socially linking up forker and project would have been.

Github "fork" strikes the perfect balance between proximity and distance: all the benefits of a branch, all the freedom of working in your own personal account. With this github have solved the problem of source dump repos so hard that we easily forget that it ever existed.

Re:What is a fork, and how GitHub changed its meaning by johannes1234321 on Friday May 24, 2019 @07:20PM (#20006126)
> Without github's "fork" branches we would most likely still see repositories initialized from plain source dumps

I doubt that. Git inherently allows pushing and pulling from anywhere. You can easily create a new repo on GH and push your branch(es) from your local clone there. Creating a new clean repo is more work. See how Linux works.

Re:What is a fork, and how GitHub changed its meaning by hermanradtke on Saturday May 25, 2019 @01:57AM (#20007354)
You can email GitHub and have them remove the link to upstream after the fact too. I did this after I forked upstream to send a bunch of patches and then decided to take the project in a different direction as an experiment.

Github has a bunch of issues, but the way they fork is not in my top 3.

Re:What is a fork, and how GitHub changed its meaning by ralph84 on Friday May 24, 2019 @04:18PM (#20004913)
> I think that GitHub actively encourages the cathedral model

Characterizing a site where literally the entire development process can be done in the open as the cathedral model is a serious misreading of the The Cathedral and the Bazaar.

Re:What is a fork, and how GitHub changed its meaning by jrochkind1 on Saturday May 25, 2019 @08:15AM (#20008571)
I was also unconvinced by your argument that these features relate to bazaar/cathedral.

Even in your linux examples, people still generally recognize an "upstream" and "downstream" (perhaps we could call that a 'lineage'), don't they?

Because, I suggest, a totally decentralized flat horizontal list of repos without any notion of "upstream" and "downstream" isn't actually too useful in practice. I'm not sure that's related to "cathedral" vs "bazaar".

It's possible github encourages 'cathedral' thinking/behavior somehow by the nature of the featureset, but your argument hasn't convinced me of that; or that, even if so, it's intentional.