6 ms·
Git undoubtedly has disrupted the SCM space and become the major player for some very good reasons. But this bit of history casts the famous Linus quote in a bi
by mcdonje 4y ago
Git undoubtedly has disrupted the SCM space and become the major player for some very good reasons. But this bit of history casts the famous Linus quote in a bit of a different light; "Git proved I could be more than a one-hit wonder." Initial adoption by a major project is not something everyone can make happen by throwing their weight around. If he had communicated better, arch, darcs and monotone could've been git.
SQLite has their own SCM (fossil), which hasn't taken off to nearly the same degree. Some of it has to do with the main problems different projects have. Some of it has to do with marketshare, and git started on 2nd base in that area.
- dahart 4y agoIt’s true that Darcs or something else could have won if only Linus told them exactly what to do. Maybe he didn’t even know how until he tried himself, but it doesn’t cast these other SCMs in a good light to say they couldn’t build something performant without Linus telling them to; you’re giving him a little too much power & credit. It’s also true that Fossil (or any of the DVCSs released after Git) might’ve won if only they had released before Git. Fossil was released after Git was, and after Git’s popularity had started growing. I have the impression that Fossil was built partly as a reaction to Git since the Fossil docs have always compared themselves to Git and complained about certain Git features. Fossil historically might not even exist without Git, but either way, market share may not be the primary reason, since one of these two actually predates the other. BitKeeper previously had the market share that Git took over, and BK didn’t win either, so market share may not be the explanation at all. Other reasons for nothing yet overtaking Git may be that nothing yet is better enough. I’d be surprised if something doesn’t replace Git eventually though.
- mjw1007 4y agoI don't think Git "won" principally on technical merits. I think it won because VCS transitions are very painful so people wanted to use the system that they expected to end up being most widely adopted. Certainly that's why I chose it in 2007. And of course when you're making this decision you should assume that many other people are making it on the same grounds. I believe the term for this situation is a "Keynesian beauty contest".
- WorldMaker 4y ago> I don't think Git "won" principally on technical merits. Git seems a very pure example of the Unix philosophy "worse is better". Lots of evidence that Linus examined darcs in some detail, decided it was "too smart" and wanted/needed "dumb but fast". It's even in the name of git given "git" is a British colloquialism for "idiot" or "fool". Sometimes you just need the dumb tool that works fast and gets out of the way, and the technically better and smarter (but slower; harder to understand) tool loses.
- cryptonector 4y agoGit started out dumb, but had the right internal primitives. The rest got built over time. Nothing wrong with that. Yes, there's warts left over all over the place. So what.
- WorldMaker 4y agoSo what? It's a useful reminder that the "best technical solution" isn't always "the best solution for me/right now/here/this need that I have". It's also useful to remember that git started out dumb and is still dumb in its own ways, because that gives us room to grow, things to aspire to, and areas to continue to research, better "technical" tools to keep an eye on. Git was named dumb especially with respect to darcs, and from that perspective git will always be dumb: you call git's internals "right", but "right" has multiple meanings. Yes, they are well suited to the job. But the darcs perspective here is that they aren't the most "technically right". Darcs internals use primitives that much more closer resemble OTs/CRDTs. There's a lot of HN love for the technical beauty of tools like CRDTs. Darcs made the case from its beginning that source control and the mental model of source control is much closer to things like CRDTs (keeping in mind darcs predated/coincided much CRDT development) than it is to "trees of trees of files" like it is in git internals. Darcs is closer to the "right" tech internally, especially where its primitives do model programmer behavior better. It's useful to still have darcs to compare to for what a "smarter git" could look like, even/especially at the internal primitives level. It's useful that projects like pijul are still exploring those ideas even despite "git has won" and "worse is better". At this point like most everyone, I use git because it is incredibly pragmatic. I appreciate knowing that git isn't perfect, isn't "technically smart", and that there are cases to continue learning how we do the beautiful technically smart stuff in a way that is also or at least nearly as pragmatic.
- prepend 4y agoCome on, subsurface [0] had already proved Torvalds wasn’t a one hit wonder. Of course, being a one hit wonder in software is pretty good if your hit is the Linux kernel. [0] https://subsurface-divelog.org/ https://subsurface-divelog.org/
- pflanze 4y agoAccording to Wikipedia Torvalds started developing that in 2011, whereas he started Git in 2005. [1] https://en.wikipedia.org/wiki/Subsurface_(software) https://en.wikipedia.org/wiki/Subsurface_(software) which is just an alias for Torvald's page, search for "late 2011"
- astrobe_ 4y agoI think Git benefited from Linux, but not from Linus' fame (which was next to null outside of the Linux circles at that time, it took off a little when Linux started to power phones when it became the kernel for Android, I believe). By being used for a project of a significant size, it proved that it was efficient and rock solid. And those facts overcame the fact that it came from a niche community and that its basic user interface is lacking according to many.
- cryptonector 4y agoFossil is amazing, but a) it lacks Git's deployment at scale experience, and b) it's too opinionated, like Mercurial. (a) means that, for example, the Windows source code can never fit in a Fossil repository. The issue is that the SQL metadata alone is daunting. Git devs have developed a bunch of techniques for dealing with this, such as shallow clones, partial clones, and the use of Bloom filters for speeding up git log traversal (for, e.g., `git blame`). (b) is just terribly obnoxious. Rebase == script around cherry-pick. Fossil provides cherry-picking. Fossil refuses to provide rebase. Mercurial too went through the same opinionated stage and then landed at providing all the things that Git power users want. Until Fossil improves this, for example, I can't be bothered to use it much. Why would you reject a huge portion of your audience, especially power users who can influence projects to choose your DVCS?