cvspserver stream tcp nowait nobody git-cvsserver pserver
Note: Some inetd servers let you specify the name of the executable independently of the value of argv[0] (i.e. the name the program assumes it was executed with). In this case the correct line in /etc/inetd.conf looks like
cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvsserver pserver
Only anonymous access is provided by pserver by default. To commit you will have to create pserver accounts, simply add a gitcvs.authdb setting in the config file of the repositories you want the cvsserver to allow writes to, for example:
[gitcvs] authdb = /etc/cvsserver/passwd
The format of these files is username followed by the encrypted password, for example:
myuser:sqkNi8zPf01HI myuser:$1$9K7FzU28$VfF6EoPYCJEYcVQwATgOP/ myuser:$5$.NqmNH1vwfzGpV8B$znZIcumu1tNLATgV2l6e1/mY8RzhUDHMOaVOeL1cxV3
You can use the htpasswd facility that comes with Apache to make these files, but only with the -d option (or -B if your system suports it).
Preferably use the system specific utility that manages password hash creation in your platform (e.g. mkpasswd in Linux, encrypt in OpenBSD or pwhash in NetBSD) and paste it in the right location.
Then provide your password via the pserver method, for example:
cvs -d:pserver:someuser:somepassword@server:/path/repo.git co <HEAD_name>
No special setup is needed for SSH access, other than having Git tools
in the PATH. If you have clients that do not accept the CVS_SERVER
environment variable, you can rename git-cvsserver to cvs
.
Note: Newer CVS versions (>= 1.12.11) also support specifying CVS_SERVER directly in CVSROOT like
cvs -d ":ext;CVS_SERVER=git cvsserver:user@server/path/repo.git" co <HEAD_name>
This has the advantage that it will be saved in your CVS/Root files and
you don’t need to worry about always setting the correct environment
variable. SSH users restricted to git-shell don’t need to override the default
with CVS_SERVER (and shouldn’t) as git-shell understands cvs
to mean
git-cvsserver and pretends that the other end runs the real cvs better.