I really like the notion of having the whole repo including issue tracking in a single file that can be easily copied around. But Fossil's stance on history - specifically, the deliberate refusal to implement history-editing functionality like squash and rebase - is a showstopper, and their rationale for it reads very much along the lines of "you're holding it wrong".
SQLite also doesn't use CVS, SVN, or Perforce.<p>If this title were "SQLite uses Fossil", it'd be more apparently just another ad for Fossil.
Richard Hipp (SQLite guy) spoke about the thinking behind writing Fossil instead of using Git on Corecursive episode 66.<p>If i remember correctly, it wasn't that they had any real problem with git, but that git didn't really fit with how they wanted to work, so they created their own thing.<p><a href="https://corecursive.com/066-sqlite-with-richard-hipp/" rel="nofollow">https://corecursive.com/066-sqlite-with-richard-hipp/</a>
Fun fact: Fossil uses sqlite. And sqlite uses fossil. Think about that.<p>SQLite is what I consider a well-engineered product.<p>And Richard Hipp is an excellent engineer. Listen to his podcast episodes on the changelog. It's fun. His mentality is interesting.<p><a href="https://changelog.com/person/drh/podcasts#feed" rel="nofollow">https://changelog.com/person/drh/podcasts#feed</a>
The single file repository is super convenient for one person projects, but just a word of caution to fossil users - backup the repo file often. A while back I downgraded the fossil binary (by accident) and committed a change to a local repo which caused it to be corrupted. It was a repeatable thing, and was annoying at the time, but not a showstopper. I only lost a day's worth of work. I wish fossil had done a version check between the binary and the repo to refuse to alter the repo if the binary version was incompatible.
I use Fossil at home since it's just me. The single file approach takes up less space than the comparable git tree.<p>Fossil has the ability to push to git, which I do periodically just for curiosity.
With regard to rebase and fossil vs git when you have a small team of trusted developers rebase is harmful because you lose information that could help you understand the _why_ of something. In contrast if you are working with thousands of untrusted developers you need a way to increase the signal-to-noise at the cost of some granularity.<p>This comes about from their development styles (see: <a href="http://www.catb.org/~esr/writings/cathedral-bazaar/" rel="nofollow">http://www.catb.org/~esr/writings/cathedral-bazaar/</a>).<p>- Use fossil if you prefer the cathedral style of development SQLite is open source but does not accept contributions.<p>- Use Git if you prefer the bazaar style of development. You want to accept hit-and-run style contributions from anyone.
To be honest, I hate Git. The commands don't really make sense outside some basic stuff. For certain organizational setups it seems like overkill. I am not a full-time programmer but I do programming for my job and for personal projects sometimes and I never enjoy using Git.
Important note mentioned here is that sqlite doesn't accept external contributions and has a very small team. The Fossil folks and the sqlite folks are also essentially the same team. Fossil is a boutique VCS which essentially only exists for sqlite.
> I still believe that a squash+merge (or sometimes, rebase) workflow pairs better with pull requests<p>Unpopular opinion, but I find the value of having the actual surrounding context in which the code was developed more valuable than having a flat history.
Author confuses SQLite's development model with Fossil's at the end, the latter welcomes contributions: <a href="https://www.fossil-scm.org/home/doc/trunk/www/contribute.wiki" rel="nofollow">https://www.fossil-scm.org/home/doc/trunk/www/contribute.wik...</a>
The sound of it from the article reminds me some of <a href="https://trac.edgewall.org/" rel="nofollow">https://trac.edgewall.org/</a>
The SQLite people not using git or hg is like the Bell Labs people and three-button-mouse heavy sam/acme: when you’re right about everything 99/100 times, that 100th time you’re really going to double down on some dumb-ass thing.<p>In what possible world is telling the most successful set of design decisions about document management in the history of documents or management to get fucked not just “I’ve got goodwill to burn, let’s ride.”? SQLite is indeed badass, but cool it djb, I’m already stressing about the zero bugs ever thing.