cvssuck(1)
NAME
cvssuck - inefficient cvs repository grabber using cvs command
SYNOPSIS
cvssuck [-h] [-b] [-s] [-v] [-D debug-option,...] cvsroot [-o outputdirectory|-O output-base] [-l lock-directory|-L lock-base] module ...
DESCRIPTION
CVSsuck is a mirroring tool for cvs repositories. Unlike other tools such as CVSup or rsync, it uses cvs command to access the repository. So, it works well with remote repositories without a special server or shell account. However it is inefficient and not perfect because cvs client/server protocol is not designed for mirroring. If a server provides special way to grab a repository, you shouldn't use CVSsuck.
OPTIONS
-h prints help message.
- -b makes CVSsuck to traverse directories in breadth first. CVSsuck
- traverses directory in depth first by default.
- -s specifies skeleton mode. In this mode, CVSsuck grabs only first
- revision of the trunk, 1.1, branchpoints, head of branches and tagged revisions. Note that first two (first revision of the trunk and 1.1) is identical in usual case.
- -v makes CVSsuck verbosely. This is same as `-D com
- mand,attic,leavetmp'.
- -D debug-option,...
- specifies debug options. Available debug options are listed by `cvssuck -h'.
- -o output-directory
- specifies the directory to store grabbed repository. A remote RCS file module/dir/file,v in cvsroot will be stored in outputdirectory/dir/file,v.
- -O output-base
- specifies the base directory to store grabbed repository. A remote RCS file module/dir/file,v in cvsroot will be stored in output-base/module/dir/file,v. -o and -O is exclusive. The last specified before module is effective. By default, CVSsuck behaves as that current directory is specified with -O.
- -l lock-directory
- specifies the directory of CVS style lock.
- -L lock-base
- specifies the base directory of CVS style lock. -l and -L is exclusive. A lock directory should be specified after an output directory. The last specified before module after an output directory is effective. By default, CVSsuck assumes a lock directory is same as output directory.
EXAMPLES
% cvssuck :pserver:anonymous@cvs.m17n.org:/cvs/cvs cvssuck
grabs the module cvssuck in the repository :pserver:anonymous@cvs.m17n.org:/cvs/cvs into the directory cvssuck.
% cvssuck :pserver:anonymous@cvs.m17n.org:/cvs/cvs cvssuck cvs-info
grabs the modules cvssuck and cvs-info.
% cvssuck :pserver:anonymous@cvs.m17n.org:/cvs/cvs -O $HOME/.cvsroot
cvssuck
grabs the module cvssuck into $HOME/.cvsroot/cvssuck.
% cvssuck :pserver:anonymous@cvs.m17n.org:/cvs/cvs -O $HOME/.cvsroot -L
$HOME/.cvslock cvssuck
grabs the module cvssuck into $HOME/.cvsroot/cvssuck with the lock directory $HOME/.cvslock/cvssuck.
% cvssuck :pserver:anonymous@cvs.m17n.org:/cvs/cvs -o $HOME/.cvsroot/cvs/suck cvssuck
grabs the module cvssuck into $HOME/.cvsroot/cvs/suck.
% cvssuck -s :pserver:anonymous@cvs.m17n.org:/cvs/cvs cvssuck
grabs needy revisions (skeleton) of the module cvssuck.
SEE ALSO
http://cvs.m17n.org/~akr/cvssuck/
cvs(1), rcs(1), cvsup(1), rsync(1)
AUTHORS
Tanaka Akira <akr@m17n.org>.
BUGS
It's inefficient.
- It's not perfect because revisions stated as `dead' cannot be
retrieved. However it is not observable until the state is changed by
`cvs admin -s'.