doc/handbook/synching.sgml
1998-04-30 12:51:16 +00:00

62 lines
3 KiB
Text

<!-- $Id: synching.sgml,v 1.13 1998-04-30 12:51:16 jkh 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: 1998-04-30 12:51:16 $
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 <ref id="anoncvs" name="Anonymous CVS">,
<ref id="cvsup" name="CVSup"> and <ref id="ctm" name="CTM">.
<p><bf>Anonymous CVS</bf> and <bf>CVSup</bf> use the <em>pull</em>
model of updating sources. In the case of <tt>CVSup</tt>, the user
(or a cron script) invokes the <tt>cvsup</tt> program and it
interacts with a <tt>cvsupd</tt> server somewhere to bring your files
up to date. The updates you receive are up-to-the-minute and you get
them when, and only when, you want them. You can easily restrict your
updates to the specific files or directories that are of interest to
you. Updates are generated on the fly by the server, according to
what you have and what you want to have. <tt>Anonymous CVS</tt> is
quite a bit more simplistic than <tt>CVSup</tt> in that it's just
an extention to <tt>cvs(1)</tt> which allows it to pull changes directly
from a remote CVS repository. <tt>CVSup</tt> can do this far more
efficiently, but <tt>anoncvs</tt> is easier to use.
<p><bf>CTM</bf>, on the other hand, does not interactively compare
the sources you have with those on the master archive or otherwise
<em>pull</em> changes across. Instead, a script which identifies changes
in files since its previous run is executed several times a day on the
master CTM machine, any detected changes being compressed, stamped with a
sequence-number and encoded for transmission over email (in 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 or Anonymous CVS, 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. If you inadvertently wipe out
portions of your archive, CVSup will detect and rebuild the damaged
portions for you. CTM won't do this and anoncvs is probably more likely
to become seriously confused than anything else. 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 with CTM or, with anoncvs, simply delete the bad bits and re-sync.
For more information on Anonymous CVS, CTM and CVSup, please
see one of the following sections:
&anoncvs;
&ctm;
&cvsup;