2022-07-22 Programming

If you happen to be in the market for a version control system, may I recommend Fossil?

Why Fossil: imagine having your own little GitHub running locally, out of a 7-megabyte executable, with no other files to worry about. Well, except for the repos, and each repo is also a single file starting from 220KB. You get all the usual goodies, including forums and chat if you share with other people. But even while working alone, bug tracking and a project wiki can help. Besides, the browser interface is so convenient when it comes to seeing changes from version to version and such.

Why not Git: everyone uses Git today. That's just wrong. Git is made for projects with millions of lines of code and thousands of contributors. You know, like the Linux kernel. Is your project even remotely comparable? Besides, Git is infamously arcane and unforgiving. It can and will delete all your work if you make a tiny mistake. Pro tip: people make mistakes. It's how we can learn and adapt. Any design that ignores this simple fact of life is fundamentally broken.

Fossil has its quirks too. Think twice before doing a commit, because you can't back out of it. (You can, however, yeet it to a hidden branch named "bloopers" or some such.) And binary files are managed separately, outside of the regular revision workflow. On the plus side, it has niceties like tracking all your (local) repos, changing tags after the fact or showing you a heat map of recent changes to a file. Once you get its philosophy, that will open new doors.

You can work without a safety net (I did, for years). You can use Bazaar, another fine VCS. Fossil is different. And a change is welcome these days.