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

> duplicating the source tree

That reminds me that "fork" when used as a verb on GitHub's UI should more accurately be "cloud clone".

GitHub's terminology has muddied the waters between the concept of actual forks (longterm divergent development) and a particular implementation of a permission system for branches.



As soon as you create your own commits on a clone of the repository you then have a 'fork' in the chain of commits.


We used to just call it a 'branch' because it was just another branch in the distributed revision tree. There is nothing special about a branch you create and commit to, whether it's by clicking on a picture on the screen or typing a command in a terminal.

Calling a branch a fork is just a water-muddying term probably coined by some suit in marketing who saw the buzzword somewhere in an article on the Internet Explorer and thought they would re-purposed to use as a product differentiator.


More likely the founders of GitHub were not expecting world domination and so did not consider every ramification of a word choice.


It's not the same thing though. A GitHub 'fork' has a different origin than a regular branch.


It's the third git repository, which is on your own hard drive, that has those.


That's a second-order observation. We could use any noun for that if and when it's relevant - I suggest alternadoodley.

Like I said, "fork" already has a useful meaning with regard to an OSS project, so there's no need to overload it. Is the following sentence not confusing? When you fork on GitHub you create a fork but not every fork is a fork.


Every fork is a fork. They're just not all long-lived or significant, which seems to be the distinction you're drawing here.


Put it this way, when the user presses the Fork button in the GitHub UI, is their intention to contribute to the project, or is it to create a competitor/alternative to the project.

I say the former situation is an obfuscated permission system and the latter is a fork.

[ I've gone rather off-topic from TFA so will stop commenting now! ]


Isn't that also true of a branch in the same repo?


Yes branching is done in Git by forking the sequence of commits into two? Giving you your own fork of the software.




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

Search: