On Fri, Jul 11, 2025 at 5:09 PM Constantine A. Murenin <muren...@gmail.com> wrote:
> I once did a thought experiment of why Fossil-SCM is not more popular. > > If the tool lets you self-host easily, why would anything like a > GitHub spring up to solve the issue that's already been solved? > Long-time, greying-hair fossil contributor her, like Andy Bradford up-thread, so my apologies in advance if this is a bit of an unfocused rant. My intent here is simply to provide, as one of Fossil's core developers, some historical insight and related musings. Fossil was initially developed without the knowledge that git was a thing, and its development was never widely publicized (i initially stumbled across a mention of it in a comment in SQLite's prior ticket system in December 2007 and it's been a central part of my toolbox since that day (and we still don't go out of our way to publicize it)). Its spiritual predecessor was CVSTrac, which had a similar core feature set of SCM + wiki + ticket system, and it was the CGI self-hosting and wiki capability which initially drew me to it. Git was nowhere at all on Richard's radar, and i don't know for sure that i had heard about git until much later. Had fossil come out a few years earlier, it might have caught on or might have struggled for dominance alongside darcs and hg. Git caught on in record time, probably (i strongly opine) because of the name behind it. Few people can name "the SQLite guy" off the top of their head[^1], whereas "Linus Torvalds" is a name known to many outside of the IT world. It took SVN about 5 years to truly displace CVS, and it took git all of about 6 months to effectively displace SVN - practically overnight. Now git is stuck there, like it or not, and it's not going to be displaced in any foreseeable future. (Maybe, just maybe, if Linus were part of a scandal like Hans Reiser, people would distance themselves from it, but that's a genuine long shot!) Had git come out a couple of years earlier, fossil might never have existed - it's conceivable that using git would have been deemed the lesser evil compared to starting one's own SCM from scratch. (That said, after 17+ of working with Richard i would no longer bet good money on that outcome. He has a strong philosophy of "freedom is being able to take care of yourself," and that is readily visible in his tendency to eschew third-party dependencies unless they're unavoidable. He will readily "reinvent the wheel" if it means having one fewer external dependency, and that's why Fossil exists.) Even if git were to fall from first place, its replacement would need to be able to scale in the same ways git can, and Fossil most definitively cannot. Fossil's "never forget anything" approach is antithetical to projects which get contributions from thousands of people a day, much (most?) of which gets filtered out by the time it approaches the trunk. Also, Fossil's manifest file format does not scale well to projects with tens or hundreds of thousands of files, and that's baked into the architecture - it cannot simply be optimized without breaking all old clients. Fossil targets single-dev and small-team projects, which realistically accounts for 99%+ of FOSS and offline personal projects. For the outlier projects (any OS, LibreOffice, modern web browsers, and the like), Fossil, in its current incarnation, would be a poor solution. i opine that git is _also_ a poor solution, in that it's far too easy to misuse and far too easy to break, but it inarguably scales well and it has a strong following (largely by developers who will never in their lives need that type of scalability (_sigh_)). Nobody is _forced_ to use git, but practicality (and possibly one's paycheck) calls for at least a basic proficiency with it. Aside from an occasional clone and subsequent pulls, i've thankfully not had to use git in 11+ years simply because most of my development happens in/around the Fossil/SQLite ecosystem, where we don't _have_ to use git (so we don't). The rest of y'all, however, probably can't get around [g]it :/. [^1]: drh a.k.a. Richard Hipp