Comment by grenran

5 hours ago

that would be what https://fossil-scm.org/ is

While Fossil uses SQLite for underlying storage (instead of filesystem directly) and various support infrastructure, its actual format is not based on SQLite: https://fossil-scm.org/home/doc/trunk/www/fileformat.wiki

It's basically plaintext. Even deltas are plaintext for text files.

Reason: "The global state of a fossil repository is kept simple so that it can endure in useful form for decades or centuries. A fossil repository is intended to be readable, searchable, and extensible by people not yet born."

Very interesting. Looks like fossil has made some unique design choices that differ from git[0]. Has anyone here used it? I'd love to hear how it compares.

[0] https://fossil-scm.org/home/doc/trunk/www/fossil-v-git.wiki#...

  • I use Fossil extensively, but only for personal projects. There are specific design conditions, such as no rebasing [0], and overall, it is simpler yet more useful to me. However, I think Fossil is better suited for projects governed under the cathedral model than the bazaar model. It's great for self-hosting, and the web UI is excellent not only for version control, but also for managing a software development project. However, if you want a low barrier to integrating contributions, Fossil is not as good as the various Git forges out there. You have to either receive patches or Fossil bundles via email or forum, or onboard/register contributors as developers with quite wide repo permissions.

    [0]: https://fossil-scm.org/home/doc/trunk/www/rebaseharm.md

  • I use Fossil extensively for all my personal projects and find it superior for the general case. As others said it’s more suited for small projects.

    I also use Fossil for lots of weird things. I created a forum game using Fossil’s ticket and forum features because it’s so easy to spin up and for my friends to sign in to.

    At work we ended up using Fossil in production to manage configuration and deployment in a highly locked down customer environment where its ability to run as a single static binary, talk over HTTP without external dependencies, etc. was essential. It was a poor man’s deployment tool, but it performed admirably.

    Fossil even works well as a blogging platform.

  • Used it on and off mainly to check it out, but always in a personal/experimental capacity. Never managed to convince any teams to give it a try, mostly because git don't tend to get in the way, so hard to justify to learn something completely new.

    I really enjoy how local-first it is, as someone who sometimes work without internet connection. That the data around "work" is part of the SCM as well, not just the code, makes a lot of sense to me at a high-level, and many times I wish git worked the same...

    • I mean, git is just as "local-first" (a git repo is just a directory after all), and the standard git-toolchain includes a server, so...

      But yeah, fossil is interesting, and it's a crying shame its not more well known, for the exact reasons you point out.

      2 replies →

  • I like it but the problem is everyone else already knows git and everything integrates with git.

    It is very easy to self host.

    Not having staging is awkward at first but works well once you get used to it.

    I prefer it for personal projects. In think its better for small teams if people are willing to adjust but have not had enough opportunities to try it.

    • Is it possible to commit individual files, or specific lines, without a staging area? I guess this might be against Fossil's ethos, and you're supposed to just commit everything every time?

      4 replies →