diff --git a/handbook/Makefile b/handbook/Makefile index 78415e80a9..7db8a81bf8 100644 --- a/handbook/Makefile +++ b/handbook/Makefile @@ -1,20 +1,20 @@ -# $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 SRCS+= kerberos.sgml kernelconfig.sgml kerneldebug.sgml kernelopts.sgml SRCS+= lists.sgml mail.sgml makeworld.sgml memoryuse.sgml SRCS+= mirrors.sgml nfs.sgml nutshell.sgml pgpkeys.sgml policies.sgml SRCS+= porting.sgml ports.sgml ppp.sgml printing.sgml SRCS+= quotas.sgml relnotes.sgml routing.sgml russian.sgml SRCS+= serial.sgml scsi.sgml scsihd.sgml SRCS+= sections.sgml sio.sgml skey.sgml slipc.sgml SRCS+= slips.sgml stable.sgml submitters.sgml synching.sgml SRCS+= term.sgml userppp.sgml uart.sgml linuxemu.sgml .include diff --git a/handbook/anoncvs.sgml b/handbook/anoncvs.sgml new file mode 100644 index 0000000000..be8c7d821f --- /dev/null +++ b/handbook/anoncvs.sgml @@ -0,0 +1,166 @@ + + + +Anonymous CVS + +

Contributed by &a.jkh; + +Introduction + +

Anonymous CVS (or, as it is otherwise known, anoncvs) 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 CVSROOT environment variable to point at the +appropriate anoncvs server and then uses the cvs(1) command to +access it like any local repository. + +

While it can also be said that the and anoncvs +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, CVSup 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 CVSup, a special client must first be +installed and configured before any bits can be grabbed, and then only in +the fairly large chunks which CVSup calls collections. + +

Anoncvs, by contrast, can be used to examine anything from an +individual file to a specific program (like ls or grep) +by referencing the CVS module name. Of course, anoncvs 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 CVSup is really your only option. + +Using Anonymous CVS + +

Configuring cvs(1) to use an Anonymous CVS repository is +a simple matter of setting the CVSROOT environment +variable to point to one of the FreeBSD project's anoncvs +servers. At the time of this writing, the following servers are +available: + + + USA: anoncvs@anoncvs.freebsd.org:/cvs + + +

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 (-r) flag to cvs(1) +and what some of the permissible values for it in the FreeBSD Project +repository are. + +

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. + +

Here are the branch tags that users might be interested in: + + + + +

Here are the revision tags that users might be interested in: + + + + +

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 -D date +flag. See the cvs(1) man page for more details. + +Examples + +

While it really is recommended that you read the manual page for +cvs(1) thoroughly before doing anything, here are some quick +examples which essentially show how to use Anonymous CVS: + +

Checking out something from -current (ls(1)) and deleting it again: + + +% setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs +% cvs co ls +% cvs release -d ls + + +

Checking out the version of ls(1) in the 2.2-stable branch: + + +% setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs +% cvs co -rRELENG_2_2 ls +% cvs release -d ls + + +

Creating a list of changes (as unidiffs) to ls(1) between FreeBSD 2.2.2 +and FreeBSD 2.2.6: + + +% setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs +% cvs rdiff -u -rRELENG_2_2_2_RELEASE -rRELENG_2_2_6_RELEASE ls + + +

Finding out what other module names can be used: + + +% setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs +% cvs co modules +% more modules/modules +% cvs release -d modules + + +Other Resources + +

The following additional resources may be helpful in learning CVS: + + + from Cal Poly. + , commercial + maintainers of CVS. + + is the FreeBSD Project web interface for CVS. + diff --git a/handbook/sections.sgml b/handbook/sections.sgml index 90ded366f0..9991885cf2 100644 --- a/handbook/sections.sgml +++ b/handbook/sections.sgml @@ -1,66 +1,67 @@ - + + diff --git a/handbook/synching.sgml b/handbook/synching.sgml index 7e79b26e1c..5d5c555740 100644 --- a/handbook/synching.sgml +++ b/handbook/synching.sgml @@ -1,52 +1,62 @@ - + Synchronizing Source Trees over the Internet

Contributed by &a.jkh;.

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 , + and . -

CVSup uses the pull model of updating. The -user (or a cron script) invokes the cvsup program, and it +

Anonymous CVS and CVSup use the pull +model of updating sources. In the case of CVSup, the user +(or a cron script) invokes the cvsup program and it interacts with a cvsupd 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. Anonymous CVS is +quite a bit more simplistic than CVSup in that it's just +an extention to cvs(1) which allows it to pull changes directly +from a remote CVS repository. CVSup can do this far more +efficiently, but anoncvs is easier to use.

CTM, 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 push rather than a pull model. - -

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. - -For more information on CTM and CVSup, please +the sources you have with those on the master archive or otherwise +pull 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 push rather than a +pull model. + +

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;