[chord] Mercurial and SFSlite migration

Emil Sit sit at MIT.EDU
Thu Dec 7 11:51:51 EST 2006


Hello,

I recently made an executive decision to move the sfsnet code-base
from CVS to using a distributed version control system called
Mercurial [1].  The Mercurial repository is available for anonymous
access at 

   http://hg.pdos.csail.mit.edu/hg/dht/ 

This conversion has a number of benefits, including:

  * live access to our working repository (the old system had a
    delay before our commits were propogated to the anonymous
    CVS repository),
  * the ability to monitor changes via RSS in your favorite feed-reader,
  * the ability to trivially branch from our code,
    - send us patches trivially,
    - and also merge our changes into your branch trivially.
  * modern VCS improvements like renames, atomic commits, etc.

The downside is that you have to install and learn Mercurial but
(partly discussed below), it is not too hard.

As part of this migration, I have removed all applications
(including CFS) from the source tree.  The acinclude.m4 file
contains an updated CHORD_CHORD macro which should let you link
external applications easily with Chord DHT and SFSlite builds.
An example of such an application is available at
   http://hg.pdos.csail.mit.edu/hg/usenet/ 

The second major (but unrelated) change is that Chord no longer
requires that you obtain and build SFS from CVS.  You should be
able to build this source tree against SFSlite, a stripped-down
version of SFS which has more regular releases.  Notably, our
source tree should now build against sfslite-0.8.12 [2] or later.
Among other things, SFSlite compiles faster and has better support
for a (hopefully) easier-to-use asynchronous programming tool
called TAME [3].

I have completed a pass at updating the Chord web-site to reflect
these changes, but there may still be references to the old system.

-=-=-

Here is a really short guide to using Mercurial.  Fortunately, it
looks a lot like CVS; more detailed instructions are available on
the Mercurial web-site [1] or from other projects that have made
the switch, like Xen [4]:

  Initial check-out
    hg clone http://hg.pdos.csail.mit.edu/hg/dht/
  Subsequent updates
    hg pull -u
  Viewing current changes
    hg diff
  Commiting a change
    hg commit
  Sending us a change
    hg export [changeid] > /tmp/my.patch
    # send us mail and include /tmp/my.patch 
    # OR! Publish your own mercurial repository for us to clone.

http://www.selenic.com/mercurial/wiki/index.cgi/BinaryPackages
lists where you can get pre-built packages for Mercurial.
You should use Mercurial 0.9.1.  

-=-=-

[1]: http://www.selenic.com/mercurial/
[2]: http://dist.okws.org/dist/
[3]: http://www.okws.org/doku.php?id=okws:tame
[4]: http://www.cl.cam.ac.uk/research/srg/netos/xen/readmes/hg-cheatsheet.txt

-- 
Emil Sit / MIT CSAIL PDOS / http://pdos.csail.mit.edu/chord/  



More information about the chord mailing list