Now that I've set up anoncvs for FreeBSD (thanks to ulf@freebsd.org for the

first server), document the fact.
This commit is contained in:
Jordan K. Hubbard 1998-04-30 12:51:16 +00:00
parent d07e465d9e
commit b3ef6e6b4b
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=2760
4 changed files with 204 additions and 27 deletions

View file

@ -1,9 +1,9 @@
# $Id: Makefile,v 1.31 1998-04-30 10:31:00 obrien Exp $
# $Id: Makefile,v 1.32 1998-04-30 12:51:11 jkh Exp $
SGMLOPTS=-links
SRCS= authors.sgml backups.sgml basics.sgml bibliography.sgml boothelp.sgml
SRCS+= booting.sgml contrib.sgml crypt.sgml ctm.sgml current.sgml cvsup.sgml
SRCS+= cyclades.sgml development.sgml dialup.sgml dialout.sgml
SRCS= anoncvs.sgml authors.sgml backups.sgml basics.sgml bibliography.sgml
SRCS+= boothelp.sgml booting.sgml contrib.sgml crypt.sgml ctm.sgml current.sgml
SRCS+= cvsup.sgml cyclades.sgml development.sgml dialup.sgml dialout.sgml
SRCS+= disks.sgml diskless.sgml dma.sgml eresources.sgml esdi.sgml
SRCS+= firewalls.sgml german.sgml glossary.sgml goals.sgml
SRCS+= handbook.sgml history.sgml hw.sgml install.sgml isdn.sgml

166
handbook/anoncvs.sgml Normal file
View file

@ -0,0 +1,166 @@
<!-- $Id: anoncvs.sgml,v 1.1 1998-04-30 12:51:12 jkh Exp $ -->
<!-- The FreeBSD Documentation Project -->
<sect1><heading>Anonymous CVS<label id="anoncvs"></heading>
<p><em>Contributed by &a.jkh;</em>
<sect2><heading>Introduction<label id="anoncvs:intro"></heading>
<p>Anonymous CVS (or, as it is otherwise known, <em>anoncvs</em>) is a
feature provided by the CVS utilities bundled with FreeBSD for synchronizing
with a remote CVS repository. Among other things, it allows users of
FreeBSD to perform, with no special privileges, read-only CVS operations
against one of the FreeBSD project's official anoncvs servers. To use it,
one simply sets the <bf>CVSROOT</bf> environment variable to point at the
appropriate anoncvs server and then uses the <tt>cvs(1)</tt> command to
access it like any local repository.
<p>While it can also be said that the <ref id="cvsup" name="CVSup"> and <tt>anoncvs</tt>
services both perform essentially the same function, there are various
trade-offs which can influence the user's choice of synchronization methods.
In a nutshell, <tt>CVSup</tt> is much more efficient in its usage of
network resources and is by far the most technically sophisticated of the
two, but at a price. To use <tt>CVSup</tt>, a special client must first be
installed and configured before any bits can be grabbed, and then only in
the fairly large chunks which <tt>CVSup</tt> calls <em>collections</em>.
<p><tt>Anoncvs</tt>, by contrast, can be used to examine anything from an
individual file to a specific program (like <em>ls</em> or <em>grep</em>)
by referencing the CVS module name. Of course, <tt>anoncvs</tt> is also
only good for read-only operations on the CVS repository, so if it's your
intention to support local development in one repository shared with the
FreeBSD project bits then <tt>CVSup</tt> is really your only option.
<sect2><heading>Using Anonymous CVS<label id="anoncvs:usage"></heading>
<p>Configuring <tt>cvs(1)</tt> to use an Anonymous CVS repository is
a simple matter of setting the <bf>CVSROOT</bf> environment
variable to point to one of the FreeBSD project's <tt>anoncvs</tt>
servers. At the time of this writing, the following servers are
available:
<itemize>
<item><bf>USA</bf>: anoncvs@anoncvs.freebsd.org:/cvs</item>
</itemize>
<p>Since CVS allows one to "check out" virtually any version of the FreeBSD
sources that ever existed (or, in some cases, will exist :), you need
to be familiar with the revision (<em>-r</em>) flag to <tt>cvs(1)</tt>
and what some of the permissible values for it in the FreeBSD Project
repository are.
<p>There are two kinds of tags, revision tags and branch tags. A revision tag
refers to a specific revision. Its meaning stays the same from day to
day. A branch tag, on the other hand, refers to the latest revision
on a given line of development, at any given time. Because a branch
tag does not refer to a specific revision, it may mean something
different tomorrow than it means today.
<p>Here are the branch tags that users might be interested in:
<descrip>
<tag/HEAD/
Symbolic name for the main line, or FreeBSD-current. Also the
default when no revision is specified.
<tag/RELENG_2_2/
The line of development for FreeBSD-2.2.x, also known as
FreeBSD-stable.
Not valid for the ports collection.
<tag/RELENG_2_1_0/
The line of development for FreeBSD-2.1.x - this branch
is largely obsolete.
Not valid for the ports collection.
</descrip>
<p>Here are the revision tags that users might be interested in:
<descrip>
<tag/RELENG_2_2_6_RELEASE/
FreeBSD-2.2.6.
Not valid for the ports collection.
<tag/RELENG_2_2_5_RELEASE/
FreeBSD-2.2.5.
Not valid for the ports collection.
<tag/RELENG_2_2_2_RELEASE/
FreeBSD-2.2.2.
Not valid for the ports collection.
<tag/RELENG_2_2_1_RELEASE/
FreeBSD-2.2.1.
Not valid for the ports collection.
<tag/RELENG_2_2_0_RELEASE/
FreeBSD-2.2.0.
Not valid for the ports collection.
<tag/RELENG_2_1_7_RELEASE/
FreeBSD-2.1.7.
Not valid for the ports collection.
<tag/RELENG_2_1_6_1_RELEASE/
FreeBSD-2.1.6.1.
Not valid for the ports collection.
<tag/RELENG_2_1_6_RELEASE/
FreeBSD-2.1.6.
Not valid for the ports collection.
<tag/RELENG_2_1_5_RELEASE/
FreeBSD-2.1.5.
Not valid for the ports collection.
<tag/RELENG_2_1_0_RELEASE/
FreeBSD-2.1.0.
Not valid for the ports collection.
</descrip>
<p>When you specify a branch tag, you normally receive the latest versions
of the files on that line of development. If you wish to receive some
past version, you can do so by specifying a date with the <em>-D date</em>
flag. See the <tt>cvs(1)</tt> man page for more details.
<sect2><heading>Examples</heading>
<p>While it really is recommended that you read the manual page for
<tt>cvs(1)</tt> thoroughly before doing anything, here are some quick
examples which essentially show how to use Anonymous CVS:
<p>Checking out something from -current (ls(1)) and deleting it again:
<verb>
% setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs
% cvs co ls
% cvs release -d ls
</verb>
<p>Checking out the version of ls(1) in the 2.2-stable branch:
<verb>
% setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs
% cvs co -rRELENG_2_2 ls
% cvs release -d ls
</verb>
<p>Creating a list of changes (as unidiffs) to ls(1) between FreeBSD 2.2.2
and FreeBSD 2.2.6:
<verb>
% setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs
% cvs rdiff -u -rRELENG_2_2_2_RELEASE -rRELENG_2_2_6_RELEASE ls
</verb>
<p>Finding out what other module names can be used:
<verb>
% setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs
% cvs co modules
% more modules/modules
% cvs release -d modules
</verb>
<sect2><heading>Other Resources</heading>
<p>The following additional resources may be helpful in learning CVS:
<itemize>
<item><url url="http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/cvs/"
name="CVS Tutorial"> from Cal Poly.</item>
<item><url url="http://www.cyclic.com" name="Cyclic Software">, commercial
maintainers of CVS.</item>
<item><url url="http://www.freebsd.org/cgi/cvsweb.cgi" name="CVSWeb">
is the FreeBSD Project web interface for CVS.</item>
</itemize>

View file

@ -1,9 +1,10 @@
<!-- $Id: sections.sgml,v 1.29 1998-04-30 10:31:05 obrien Exp $ -->
<!-- $Id: sections.sgml,v 1.30 1998-04-30 12:51:14 jkh Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Entities containing all the pieces of the handbook are -->
<!-- defined here -->
<!ENTITY anoncvs SYSTEM "anoncvs.sgml">
<!ENTITY bibliography SYSTEM "bibliography.sgml">
<!ENTITY basics SYSTEM "basics.sgml">
<!ENTITY booting SYSTEM "booting.sgml">

View file

@ -1,4 +1,4 @@
<!-- $Id: synching.sgml,v 1.12 1997-08-18 00:03:59 jdp Exp $ -->
<!-- $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>
@ -7,7 +7,7 @@
<!--
Last updated: $Date: 1997-08-18 00:03:59 $
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.
@ -16,37 +16,47 @@ 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.
services we offer are <ref id="anoncvs" name="Anonymous CVS">,
<ref id="cvsup" name="CVSup"> and <ref id="ctm" name="CTM">.
<p><bf>CVSup</bf> uses the <em>pull</em> model of updating. The
user (or a cron script) invokes the <tt>cvsup</tt> program, and it
<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.
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. 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.
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 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.
<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 CTM and CVSup, please
For more information on Anonymous CVS, CTM and CVSup, please
see one of the following sections:
&anoncvs;
&ctm;
&cvsup;