Why SQLite Uses Fossil Instead of Git: Simpler Version Control for an Embedded Database
The article explains why the widely embedded SQLite database relies on the Fossil version‑control system rather than Git, highlighting Fossil’s simplicity, better situational awareness, lower management overhead, and more suitable user experience for SQLite’s needs.
SQLite, the most popular embedded database found in smartphones, computers, browsers, set‑top boxes, PHP/Python installations, and many desktop applications, was created by Richard Hipp, who also authored the Fossil version‑control system.
SQLite’s own project uses Fossil for source management, and Fossil stores its data in SQLite, creating a mutually dependent relationship.
Richard Hipp wrote an article titled “Why SQLite Does Not Use Git,” outlining several reasons:
1. Git’s mental model is overly complex. Git requires developers to understand multiple concepts such as the working directory, index, local and remote heads, and numerous commands, which distracts from actual development. Fossil focuses only on the working directory and check‑ins, reducing cognitive load by about 60%.
2. Git lacks good situational awareness. Fossil’s Timeline feature shows a concise summary of all recent changes on a single screen, even on mobile devices. GitHub and GitLab offer only slower, less detailed visualizations like the network graph.
3. Git does not track historical branch names. While Git retains the full commit DAG, branch tags are local and not synchronized, making historical branch inspection cumbersome. Fossil clearly displays branch start points and merge locations.
4. Git requires more management infrastructure. Running a Git server often involves third‑party services (GitHub, GitLab) and additional dependencies. Fossil is a single binary that includes wiki, issue tracking, and forum capabilities, deployable on a cheap VPS or Raspberry Pi in minutes.
5. Git provides a poor user experience. The abundance of commands and a cluttered UI lead to frustration; even third‑party tools are needed for better visualization.
The author also reflects on Git’s advantages, such as lightweight branching, while acknowledging its complexity and the learning curve for newcomers.
Beyond SQLite and Fossil, Richard Hipp created the lightweight web server althttpd, which powers sqlite.org, and the CVSTrac bug‑tracking system, both leveraging SQLite.
In conclusion, SQLite chose Fossil because it meets the specific needs of its creator, offering simplicity and sufficient functionality, whereas most developers benefit from the broader Git ecosystem; a diverse ecosystem is beneficial for the community.
IT Services Circle
Delivering cutting-edge internet insights and practical learning resources. We're a passionate and principled IT media platform.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.