'\" t
.\" Title: cvssync
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1
.\" Date: 2016-10-10
.\" Manual: \ \&
.\" Source: \ \&
.\" Language: English
.\"
.TH "CVSSYNC" "1" "2016\-10\-10" "\ \&" "\ \&"
.\" -----------------------------------------------------------------
.\" * 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 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
.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)\&.