On Mar 24, 2009, at 10:52 PM, bharder wrote: > > http://keithp.com/blog/Repositor_Formats_matter/ > > Would anybody knowledgeable care to comment about fossil in this > light?
Both Havoc's original remarks (in favor of subversion) and Keithp's rebuttal (in favor of Git) are old. Fossil existed but was not really a factor when these remarks were written. It is not sufficient to compare fossil to subversion or Git directly. Fossil should be compared to subversion+trac or to git+trac, since fossil contains both the version-control feature (provided by subversion/git) and the wiki and bug tracking provided by trac. This is a key point that both commentators overlook. Version control is important, but it is not the only thing you need for managing a project. It is vitally important to maintain visibility into the status of the project as well. To put it another way, it is important to maintain good "situational awareness" with respect to the project - to know what is changing, who is changing it, and why. That capability is not provided by git or subversion - you have to supplement them with additional tools. But the capability is inherent in fossil. And that is a key differentiator. At a fundamental level, fossil uses the same storage model as Git: Unmodified files named by their SHA1 hash. In the current implementation of fossil, the files are stored in an SQLite database using both delta and libz compression. Git stores the files as individual files on the filesystem, at least until you compress them for archival purposes (a separate step.) Fossil does the compression as you check-in. This means that check-ins might take a little longer, but we are only talking a second or two. For storage efficiency in fossil, see (as an example) http://www.fossil-scm.org/fossil/stat for the latest statistics on the fossil self-hosting repository. 12:1 compression is pretty good. I do not have information on the network efficiency of git versus fossil. However my understanding (correct me if I am wrong) is that git does not use delta compression when transmitting updates over the wire. Fossil does. This would suggest that fossil is more efficient at synchronizing repositories. But I have never measured that. I would welcome actual measurements from people included to make them. Finally, Havoc is right, I think, that user interface matters. It is important that your CM system stay out of your way. The CM system should not require extra though. Use all your brain cycles to work on the project itself - do not waste them having to figure out your CM system. To this end, whatever CM system you use needs to be as simple and intuitive as possible. Every system has a learning curve, of course. But we want the learning curve to be as short as possible, and once one starts using the system, you shouldn't ever have to think about it again - it should "just work". Time spent messing with configurations and access permissions and "publishing" branches is time that you are not making productive enhancements to your project. My guess is that Havoc would like fossil if he know about it.... D. Richard Hipp [email protected] _______________________________________________ fossil-users mailing list [email protected] http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

