On Sep 9, 2009, at 2:04 PM, Shaun Seckman (Firaxis) wrote:

> It's always a pleasure to have a new version of one of my favorite
> tools.  I noticed in the draft that you migrated the project to  
> Fossil.
> I am curious, how was your experience with the migration?  Did it go
> smoothly or were there many kinks to work out.  Also, what was your
> primary motivation for migrating in the first place?
>

The transfer of version history from CVS to Fossil went relatively  
smoothly.  There were, in fact, some anomalies in the CVS revision  
history of SQLite back in the 1.x days and so I had to develop work- 
arounds for those anomalies.  But otherwise everything went smoothly.

SQLite is the largest (in terms of history) project that we are aware  
of that is using Fossil, so this was a big step for Fossil.  Very  
early on, the SQLite repository revealed an inefficiency in the  
implementation of the synchronization wire protocol, which we quickly  
fixed (http://www.fossil-scm.org/fossil/vinfo/7646ee13e) but other  
than that, no problems have yet arisen.  Fossil is working out very  
well.  We were pleasantly surprised to find that the Fossil repository  
was an order of magnitude smaller than the original CVS repository.   
The entire 9.25-year revision history of SQLite can be cloned with  
only about 13MB of network traffic.

There are multiple reasons for changing from CVS to Fossil.

(1) The whole point of writing fossil to begin with is so that we  
could keep tighter configuration control of SQLite.  Some customers  
require this.  Others simply want it.  As an example of the new  
capabilities that Fossil provides us, see the new sqlite3_sourceid() C/ 
C++ interface and the new sqlite_source_id() SQL functions:

     http://www.sqlite.org/draft/c3ref/libversion.html
     http://www.sqlite.org/draft/lang_corefunc.html#sqlite_source_id

(2) Fossil is a distributed VCS which enables us to work off-line.  We  
are also much less concerned about backups now, since every clone of  
the repository is a full backup.  And we can easily make read/write  
mirrors of the repository:

      http://www.sqlite.org/src/timeline  (in Dallas, TX)
      http://www2.sqlite.org/src/timeline  (in Atlanta, GA)

(3) With Fossil, it is much much easier to go back and create branches  
to fix bugs in archaic versions of SQLite, in order to support those  
companies who actually pay us.  (example:  
http://www.sqlite.org/src/vinfo/715cecb8c7)

(4) Having the canonical SQLite sources in Fossil makes it easier to  
create and maintain a private branch of SQLite.  See 
http://www.sqlite.org/privatebranch.html 
  for further discussion.

(5) In our experience, Fossil works better than CVS over slow and/or  
unreliable networks.  And, Fossil allows users behind restrictive  
firewalls to get direct access to the code - something that was never  
possible with CVS.

(6) "fossil diff" is way faster than "cvs diff" (since there is no  
network traffic with "fossil diff").

D. Richard Hipp
d...@hwaci.com



_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to