'\" t .\" Title: cvssync .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2019-04-24 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" .TH "CVSSYNC" "1" "2019\-04\-24" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" cvssync \- fetch CVS repository masters via rsync .SH "SYNOPSIS" .sp \fBcvssync\fR [\-c] [\-v] [\-n] [\-o outdir] [host\-path module | cvsurl] .SH "DESCRIPTION" .sp cvssync attempts to fetch a copy of a remote CVS repository into a local directory\&. All you have to tell it is the arguments you\(cqre expected to hand CVS to perform a checkout of the remote\&. .sp Alternatively, you can give it a single argument in URL format, of the form cvs:///#\&. .sp If a previous cvssync has been done into the directory, cvssync will do the least amount of file copying required to resynchronize the local copy with the remote\&. It relies on rsync(1) to accomplish this\&. .sp cvssync knows about the site\-structure idiosyncracies of some major CVS hosting sites and applies that knowledge so you don\(cqt have to\&. Presently its rules are known good for SourceForge, Savannah, Sourceware, and Berlios\&. Its default method should work for many other sites\&. You can use the \-v option to see what rsync command is actually generated in these cases\&. .sp Because cvssync uses rsync, you may need to have an ssh public key installed in an account on the target system for it to work\&. However, many CVS repositories are set up in a way that makes anonymous read\-only rsync possible\&. .sp cvssync is an auxiliary tool issued with cvs\-fast\-export(1) in order to facilitate moving CVS repositories to version control systems that aren\(cqt chipped out of flint\&. Of course, you can also use it for backups and other purposes\&. .SH "OPTIONS" .PP \-c .RS 4 Create a mirror that you can do checkouts from\&. Normally this tool creates a \fIbare\fR mirror of the module masters you are interested in without creating a module subdirectory and CVSROOT\&. With this option, the created directory structure is changed to include an empty CVSROOT, and the masters go in a subdirectory named after the module\&. A cvs \-d:local: co command can then be used to make a local checkout for inspection\&. .RE .PP \-n .RS 4 Dry\-run\&. Generate the commands that would be performed but do not execute them\&. Useful with \-v\&. .RE .PP \-o .RS 4 Set the name of the output directory\&. The default is to use the module name\&. .RE .PP \-v .RS 4 Verbose\&. Show subcommands as they are being executed\&. .RE .SH "DISAMBIGUATION" .sp There is another program called \fIcvsync\fR for making live mirrors; this is not it\&. One important difference is that cvsync requires a dedicated service daemon, cvsyncd, to be running on the CVS host; it\(cqs not designed for ad\-hoc fetches from random hosting sites\&. .sp There is a program called \fIcvssuck\fR roughly equivalent to cvssync\&. It has the advantage that it grabs the master files using CVS client commands, so rsync access is not required\&. It has the disadvantage that because of bugs in CVS itself, it may mangle repository metadata on the way through\&. The author warns "However it is inefficient and not perfect because cvs client/server protocol is not designed for mirroring\&." Heed this warning; do not use cvssuck except as a last resort\&. .SH "EXAMPLES" .sp Note that these examples may become obsolete as CVS repositories are decommissioned\&. They are meant to illustrate usage patterns\&. .PP cvssync cvs\&.sourceforge\&.net:/cvsroot/rfk robotfindskitten .RS 4 Fetch the Robot Finds Kitten project from Sourceforge .RE .PP cvssync rfk\&.cvs\&.sourceforge\&.net:/cvsroot/rfk robotfindskitten .RS 4 Using the full Sourceforge pseudo\-hostname also works\&. .RE .PP cvssync anonymous@rfk\&.cvs\&.sourceforge\&.net:/cvsroot/rfk robotfindskitten .RS 4 Any login credential is ignored\&. .RE .PP cvssync rfk\&.cvs\&.sourceforge\&.net:/rfk robotfindskitten .RS 4 The leading /cvsroot on a SourceForge path can be omitted\&. .RE .PP cvssync cvs://cvs\&.sourceforge\&.net/rfk#robotfindskitten .RS 4 Same fetch using the URL argument style\&. .RE .PP cvssync anonymous@cvs\&.savannah\&.gnu\&.org:/sources/groff groff .RS 4 Fetch the groff project repository from Savannah .RE .PP cvssync cvs\&.savannah\&.gnu\&.org:/groff groff .RS 4 Login credential and leading /sources can be omitted on Savannah\&. .RE .PP cvssync cvs://cvs\&.savannah\&.gnu\&.org/groff#groff .RS 4 Same fetch using the URL argument style\&. .RE .PP cvssync cvs:///home/user/foo#bar .RS 4 Copy module bar from a local CVS repository foo\&. .RE .SH "REPORTING BUGS" .sp Report bugs to Eric S\&. Raymond \&. The project page is at http://catb\&.org/~esr/cvs\-fast\-export .SH "SEE ALSO" .sp rsync(1), rcs(1), cvs(1), cvs\-fast\-export(1)\&.