NAME
cvssuck - inefficient cvs repository grabber using cvs command
SYNOPSIS
cvssuck [-h] [-b] [-s] [-v] [-D debug-option,...] cvsroot [-o output-
directory|-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
command,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 output-
directory/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’.
25 September 2000