Server requirements Remote repositories Password authenticated
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 `toe.grunge.com
', and the
server machine is `chainsaw.yard.com
'. On
chainsaw, put the following line into the file
`.rhosts
' in `bach
''s home directory:
toe.grunge.com mozart
Then test that rsh
is working with
rsh -l bach chainsaw.yard.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 problems 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 inapplicable; 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.yard.com
', you are ready to go:
cvs -d :ext:bach@chainsaw.yard.com:/usr/local/cvsroot checkout foo
(The `bach@
' can be omitted if the username is
the same on both the local and remote hosts.)