For many years I have used fossil as my source control of choice. It was my first source control and it was a revolution for me. So many projects I have completely fucked up by not using source control. Fossil is great, it solved all of the sticking points which caused me to resist using other source controls such as git or whatever else was popular at the time. I really like its single file repository approach, all other source control have this massive folder of bullshit. I also love that the checkout is separate from the repository, seriously that is total bullshit. What if you want to work on two revisions at once, well you can’t.
Now fossil has one major issue which is not a problem at first but overtime it becomes a bigger and bigger problem. Absolutely no way to alter history at all. Now I am not a fan of re-basing or any other kind of altering history but fossil takes it to an extreme. Fuck up your last commit? Just realized one second after you hit enter? Well you are fucked that commit is there forever. Sure you could grovel through the undocumented database file and manually undo that commit but good luck with that.
Now lets talk about git. I really quite dislike git, its kind of shit. But git works and it has lots of momentum behind it. You also have places like github and gitlab where you can upload and share your repositories. Fossil basically has nothing, its too niche. Git has a terrible user interface and has no decent gui to speak-of. Even the web interface for github is absolute trash which is barely usable compared to the perfection that is the UI that comes built-in to fossil.
But even with all the advantages of fossil, I really just cannot use it anymore, not being able to undo your last commit is just too much to deal with. I am a scatterbrain, I use source control to help me organize my work and not completely destroy my project as has happened before. But not being able to undo a mistake I made just seconds ago is bullshit.
Another nice thing about git which I have come to realize is actually a good feature is the stage. Fossil does not have such a system, commit is just a single step in which you specify what files you want to commit and it is done. I have often forget to commit files and other times accidentally committed everything even stuff that I did not want to. The stage is really helpful in making sure you commit exactly what you intended to commit, and also allowed you to do so in stages and not just a single command which you can easily fuckup.
So in summary, I am sad that I have to stop using fossil its almost perfect but its issues are to large to deal with. I shall now enter under the suffering and bondage of that horrible master that is git. Fuck git.