124

fossil http://www.fossil-scm.org
I found this recently and have started using it for my home projects. I want to hear what other people think of this VCS.

What is missing in my mind, is IDE support. Hopefully it will come, but I use the command line just fine.

My favorite things about fossil: single executable with built in web server wiki and bug tracking. The repository is just one SQLite (http://www.sqlite.org) database file, easy to do backups on. I also like that I can run fossil from and keep the repository on my thumb drive. This means my software development has become completely portable.

Tell me what you think....

javelinBCD
  • 1,911
  • 3
  • 15
  • 22

10 Answers10

188

Mr. Millikin, if you will take a few moments to review some of the documentation on fossil, I think your objections are addressed there. Storing a repository in an sQLite database is arguably safer than any other approach. See link text for some of the advantages of using a transactional database to store a repository. As for bloat: The entire thing is in a single self-contained executable which seems to disprove that concern.

Full disclosure: I am the author of fossil.

Note that I wrote fossil because no other DVCS met my needs. On the other hand, my needs are not your needs and so only you can judge whether or not fossil is right for you. But I do encourage you to at least have a look at the documentation and try to understand the problem that fossil is trying to solve before you dismiss it.

StayOnTarget
  • 11,743
  • 10
  • 52
  • 81
  • 7
    Features provided by fossil that one does not get with other DVCSes include: - Integrated wiki. - Integrated bug tracking - Immutable artifacts - Self-contained, stand-alone executable that can be run in a chroot jail - Simple, well-defined, enduring file format - Integrated web interface – A.Bouchez Aug 27 '10 at 07:08
  • 75
    _Full_ disclosure: He's also the author of SQLite ;) – Alan Plum Jan 11 '11 at 21:50
  • 18
    +1 for this part of your answer: "On the other hand, my needs are not your needs and so only you can judge whether or not fossil is right for you." I had a traing on Quality Management and they defined quality as "Adequation to the purpose". Your answer points right in the same direction! – sergiol Jul 31 '11 at 23:35
  • ... and Fossil is a better http://www.cvstrac.org! – tnotstar Dec 30 '11 at 08:22
  • I like fossil more when I use it daily. But it still exist many bugs/features require to enhance. I'm wonder is there anyone to handle the tickets on the ticket system? It is not easy to search old duplicate questions. So, there are full with bugs on the fossil-scm site. – Daniel YC Lin Jan 10 '13 at 10:24
  • 2
    @pluma, I started having interests in Fossil since I heard that it's made by the developer of Sqlite, Mr. D Richard Hipp :) Even I haven't used it, I can imagine it's lightweight and robustness. – Edwin Yip May 05 '14 at 06:07
  • 1
    @DanielYCLin: version 1.31 features search of tickets, wiki, and documentation. – Martijn Feb 23 '15 at 11:22
  • I used it before. And I loved the simplicity of it. I want to use it for bug tracking now. And.I landed on here while I was trying to figure out how to use tracking piece of it. – Alp Dec 29 '19 at 16:00
53

After having used Fossil for more than a year now on non-trivial development projects, I feel confident enough to weigh in on this topic.

Below is my experience so far. I'm comparing against git and svn at times, simply because I know those SCM's very well and comparing makes it easier for me to get the idea across.

I'm totally in love with this SCM, so it's mostly points on the plus side.

What I like about Fossil:

  1. We have a bunch of machines (win/mac/a number of Linux distros), and the single-executable installation is just as beautiful as it sounds. No dependencies; it just works. Git is a messy pile of files and the dependency hell in Subversion makes it very nasty on some Linux distributions, especially if you must build it yourself.

  2. The default Fossil workflow suits our projects perfectly, and more git'ish workflows are possible when needed.

  3. We've found it extremely robust, even on large projects. I wouldn't expect anything else from the guys who wrote SQLite. No crashes, no corruption, no funny business.

  4. I'm actually very, very happy with performance. Not as fast as git on huge trees, but not much slower either. I make up any lost time by not having to consult the documentation every other command, as is the case with git.

  5. The fact that there's a tried'n'true transactional database behind every operation makes me sleep better at night. Yes, we've been through more than one horrible incident of stale and corrupt Subversion repositories (thankfully, a helpful community helped us fix them.) I can't imagine that happening in Fossil. Even Subversion 1.7.x use SQLite now for metadata storage. (Try turning off power in the midst of a git commit - it'll leave a corrupt repos!)

  6. The integrated issue tracker and wiki are optional, obviously, but very handy as it's always there - no installation required. I wish the issue tracker had some more features though, but hey - it's an SCM.

  7. The built-in server and web gui is simply brilliant and quite configurable through css.

  8. We sometimes need to import to and from git and subversion repositories. This is a no-brainer in Fossil.

  9. Single file repository. No '.svn' directories all over the place.

What I miss in / dislike about Fossil:

  1. Someone please write TortoiseFossil for our non-technical Windows users :)

  2. The community isn't that large yet, so it's probably hard for a lot of people to introduce it in their company. Hopefully this will change, gaining all the benefits of a large community (documentation, more testing of new releases, etc.)

  3. I wish the local web ui had a search feature (including searching for file content).

  4. Fewer merge options than in git (though the Fossil workflow makes merging less likely to occur in the first place.)

I hope everyone gives Fossil a run - the world is a better place with stuff that just works and which you don't need to be a rocket scientist to use.

StayOnTarget
  • 11,743
  • 10
  • 52
  • 81
grand johnson
  • 731
  • 6
  • 6
  • 2
    Forgot to mention that TortoiseFossil is probably coming some day, but for now we have http://code.google.com/p/fuel-scm/. – grand johnson Aug 20 '12 at 06:44
  • 3
    There is 'SharpFossil' / 'WinFossil': http://repository.mobile-developers.de/cgi-bin/ikoch/sharpfossil/wiki?name=WinFossil – cmroanirgo Nov 27 '12 at 03:43
  • 2
    There is a [recipe to add a ticket search box](http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg01262.html) that works really well. It makes use of the TH1 scripting possibilities that fossil offers – FvD Oct 22 '13 at 15:43
  • The fuel-scm tool had been moved to https://fuel-scm.org/fossil/index. Another approach is to leverage the Visual Studio IDE if one is using for Windows related project. See documentation at http://fossil-scm.org/xfer/doc/trunk/www/fossil-from-msvc.wiki – g5thomas Mar 21 '17 at 16:42
  • 1
    Just curious: have something changed last years? – jno May 16 '19 at 12:09
17

Fossil is small, simple, yet powerful and robust, reminds me some principles of C Culture. Likable by those who develop independently and still collaborate. Any great project should start with principles and continue them at its core as it gathers more layers (GUI, extra features).

I am impressed with Fossil and starting to use... take a look at fossil

cheers

Community
  • 1
  • 1
vijiboy
  • 584
  • 11
  • 25
12

I'm landing on this page after an year of the last post, recursive add that has been mentioned here is now taken care of.

Fossil mesmerizes me with simplicity especially after I struggled to get a bug-tracking system to work with mercurial. I need to see how to manage multiple projects, publish the repositories for multi-user access and how to do merging, manage patches etc. I get the feeling that it wont be disappointing going forward.

rawjeev
  • 121
  • 1
  • 2
9

I'm not interested in using it for source-code version control, but I am interested in a distributed version-controlled personal wiki that I can sync between all the machines I use.

Kristopher Johnson
  • 81,409
  • 55
  • 245
  • 302
4

I think fossil is really cool. The most important feature for me was easy installation, and developer friendly defaults. I currently use it to keep track of the local changes of my files. (Our project is hosted in sourceforge and kept track in CVS.) This way I can "commit" locally even if it would otherwise break the project, so smaller changes can be kept track as well.

zslevi
  • 409
  • 2
  • 10
4

damian,

1/ yes, fossil doesn't support recursive add. However there are some fairly simply workarounds such as

for /r %i in (*.*) do fossil add "%i"

on Windows, and

find . -type f -print0 | xargs -0 fossil add --

on Unix.

2/ I saw the message about malformed manifest when you are adding a file with non-ASCII characters in the filename. The problem was corrected in the last build.

Regards, Petr

1

Fossil is good. It is simple and easy to use. If fossil can provide GUI interface to check in and check out, then it would be better (prefer java gui to archive cross-platform GUI).

The main advantages of Fossil are "open source" and "use SQLite database", so somebody can compile fossil source code to make fossil work on google android platform (mobile and tablet devices).

vgps
  • 11
  • 1
0

I am trying your vcs right now. I like the idea of having all integrated. After all, is all i want when i look for a system like this. I am an active user of Mercurial. And i couldn't find an integration with a issue tracker (I try unsuccessfully to set p Trac with mercurial in the past). After some test i realize that: 1) "add" command is not recursively, or i can not found in the doc a way to do it 2) i write a bat (i work with windows) to add 750 files and i run it (it took a while). When a run commit it jumps with "manifest malformed"

i think you could address this issues and others making a survey like the Mercurial's one in https://www.mercurial-scm.org/wiki/UserSurvey. you could write me at dnoseda at gmail

i am interested in you work. keep improve it.

regards

ps.: as an mayor improvement you could add something like gitstat

Vadim Kotov
  • 8,084
  • 8
  • 48
  • 62
user2427
  • 7,842
  • 19
  • 61
  • 71
  • 3
    (I am not a fossil developer - just a user) 1. it has an issue tracker (it is self hosting) 2. fossil add folder is recursive (ignores files/folders with leading '.' ) I used it last night to make a a local fossil repo of the http://www.plt-scheme.org/ subversion trunk with no problem 3. The mailing list is active and teh developer is very responsive - and doesn't seem too crowded at the moment. There is also the issue tracker, which I haven't needed to use as Fossil has been bug-free for me. – Stephen Jan 21 '10 at 23:11
  • 1
    Fogbugz (bug tracking) works with Kiln (an online repostitory for Mercurial) both provided by Fogcreek – Toby Allen Apr 08 '10 at 16:55
-11

Perhaps an uneducated knee-jerk reaction, but the idea of storing a repository in a binary blob like an SQLite database terrifies me. I'm also dubious of the benefits of including wikis and bug trackers directly in the VCS -- either they're under-featured compared to full software like Trac, or the VCS is massively bloated compared to Subversion or Bazaar.

PhiLho
  • 40,535
  • 6
  • 96
  • 134
John Millikin
  • 197,344
  • 39
  • 212
  • 226
  • 21
    SQLite is not "a binary blob". It's a really opened file format, cross-platform, and well documented. Since SQLite is the most wide-used database, they'll always be support for it in the future. And the artifact storage used in fossil is also efficient, well documented and easy to read. SQLite is one of the biggest open source projects today, and it's hosted using fossil. – A.Bouchez Aug 27 '10 at 07:07
  • 3
    for one quick and easy way to interact with an sqlite db, including export, see the firefox extension http://code.google.com/p/sqlite-manager/ – matt wilkie Nov 15 '10 at 20:06
  • 8
    All the DVCSes out there are "binary blobs" when you look at their repos. The last non-binary was CVS... I had reservations too, but got over them. – Jürgen A. Erhard Apr 12 '11 at 12:42
  • 2
    "Fossil is not based on SQLite. The current implementation of Fossil uses SQLite as a local store for the content of the distributed database and as a cache for meta-information about the distributed database that is precomputed for quick and easy presentation. But the use of SQLite in this role is an implementation detail and is not fundamental to the design." www.sqlite.org/debug1/doc/trunk/www/theory1.wiki – Gulbahar Aug 26 '11 at 14:28