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\f1,...
-
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:[email protected]:/cvs/cvs cvssuckgrabs the module cvssuck in the repository :pserver:[email protected]:/cvs/cvs into the directory cvssuck.
% cvssuck :pserver:[email protected]:/cvs/cvs cvssuck cvs-info
grabs the modules cvssuck and cvs-info.
% cvssuck :pserver:[email protected]:/cvs/cvs -O $HOME/.cvsroot cvssuck
grabs the module cvssuck into $HOME/.cvsroot/cvssuck.
% cvssuck :pserver:[email protected]:/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:[email protected]:/cvs/cvs -o $HOME/.cvsroot/cvs/suck cvssuck
grabs the module cvssuck into $HOME/.cvsroot/cvs/suck.
% cvssuck -s :pserver:[email protected]:/cvs/cvs cvssuck
grabs needy revisions (skeleton) of the module cvssuck.
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'.