<!-- $Id: synching.sgml,v 1.9 1997/02/22 12:59:32 peter Exp $ -->
<!-- The FreeBSD Documentation Project -->

<sect><heading>Synchronizing source trees over the Internet<label id="synching"></heading>

<p><em>Contributed by &a.jkh;.</em>

<!--

Last updated: $Date: 1997/02/22 12:59:32 $

This document tries to describe the various ways in which a user may
use the internet to keep development sources in synch.
-->

<p>There are various ways of using an Internet (or email) connection
to stay up-to-date with any given area of the FreeBSD project sources,
or all areas, depending on what interests you.  The primary
services we offer are CVSup and CTM.

<p><bf>CVSup</bf> is the new kid on the block, it does everything that sup
did and more, doing it also far more efficiently in terms of its demands
on server disk space and network resources.  Because of this, CVSup has
largely replaced <ref id="sup"> in the FreeBSD Project.  Like sup, it also
operates on a <em>pull</em> synchronization model.

<p><bf>CTM</bf>, on the other hand, does not interactively compare
the sources you have with those on the master archive.  Instead, a script
which identifies changes in files since its previous run is executed several
times a day on the master archive, any detected changes being compressed,
stamped with a sequence-number and encoded for transmission over email
(printable ASCII only).  Once received, these "CTM deltas" can then be
handed to the ctm_rmail(1) utility which will automatically decode, verify
and apply the changes to the user's copy of the sources.  This process is
far more efficient than CVSup, and places less strain on our server resources
since it is a <em>push</em> rather than a <em>pull</em> model.

<p>There are other trade-offs, of course.  With CVSup, you can also
inadvertently wipe out portions of your archive and CVSup will detect
and rebuild the damaged portions for you.  CTM won't do this, and if
you wipe some portion of your source tree out (and don't have it backed
up) then you will have to start from scratch (from the most recent CVS
"base delta") and rebuild it all.

For more information on CTM, CVSup or the now largely-obsolete sup, please
see one of the following sections:

   &ctm;
   &cvsup;
   &sup;
