CVS uses the `rsh' protocol to perform these operations, so the remote user host needs to have a `.rhosts' file which grants access to the local user.
For example, suppose you are the user `mozart' on the local machine `anklet.grunge.com', and the server machine is `chainsaw.brickyard.com'. On chainsaw, put the following line into the file `.rhosts' in `bach''s home directory:
anklet.grunge.com mozart
Then test that rsh
is working with
rsh -l bach chainsaw.brickyard.com 'echo $PATH'
Next you have to make sure that rsh
will be able
to find the server. Make sure that the path which
rsh
printed in the above example includes the
directory containing a program named cvs
which
is the server. You need to set the path in
`.bashrc', `.cshrc', etc., not `.login'
or `.profile'. Alternately, you can set the
environment variable CVS_SERVER
on the client
machine to the filename of the server you want to use,
for example `/usr/local/bin/cvs-1.6'.
There is no need to edit inetd.conf
or start a
CVS server daemon.
There are two access methods that you use in CVSROOT
for rsh. :server:
specifies an internal rsh
client, which is supported only by some CVS ports.
:ext:
specifies an external rsh program. By
default this is rsh
but you may set the
CVS_RSH
environment variable to invoke another
program which can access the remote server (for
example, remsh
on HP-UX 9 because rsh
is
something different). It must be a program which can
transmit data to and from the server without modifying
it; for example the Windows NT rsh
is not
suitable since it by default translates between CRLF
and LF. The OS/2 CVS port has a hack to pass `-b'
to rsh
to get around this, but since this could
potentially cause programs for programs other than the
standard rsh
, it may change in the future. If
you set CVS_RSH
to SSH
or some other rsh
replacement, the instructions in the rest of this
section concerning `.rhosts' and so on are likely
to be incorrect; consult the documentation for your rsh
replacement.
Continuing our example, supposing you want to access the module `foo' in the repository `/usr/local/cvsroot/', on machine `chainsaw.brickyard.com', you are ready to go:
cvs -d :ext:[email protected]:/usr/local/cvsroot checkout foo
(The `bach@' can be omitted if the username is the same on both the local and remote hosts.)
Go to the first, previous, next, last section, table of contents.