summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-06-13 11:22:42 -0700
committerJunio C Hamano <gitster@pobox.com>2010-06-13 11:22:42 -0700
commita5080d8e10915daa57b5b42c887483d202b45c55 (patch)
treecfe8f83c1f7e2703e7296a3004ee3a8f6f335d73 /Documentation
parent2d4fef9b86f41ad929f533e0e52dc1a6048cc2a3 (diff)
parent1dd3f291214b9647f7101d8b25c87371bf4fad48 (diff)
downloadgit-a5080d8e10915daa57b5b42c887483d202b45c55.tar.gz
Merge branch 'ab/cvsserver'
* ab/cvsserver: git-cvsserver: test for pserver authentication support git-cvsserver: document making a password without htpasswd git-cvsserver: Improved error handling for pserver git-cvsserver: indent & clean up authdb code git-cvsserver: use a password file cvsserver pserver git-cvsserver: authentication support for pserver
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/git-cvsserver.txt37
1 files changed, 33 insertions, 4 deletions
diff --git a/Documentation/git-cvsserver.txt b/Documentation/git-cvsserver.txt
index dbb053ee17..c27ca4350e 100644
--- a/Documentation/git-cvsserver.txt
+++ b/Documentation/git-cvsserver.txt
@@ -72,9 +72,6 @@ plugin. Most functionality works fine with both of these clients.
LIMITATIONS
-----------
-Currently cvsserver works over SSH connections for read/write clients, and
-over pserver for anonymous CVS access.
-
CVS clients cannot tag, branch or perform GIT merges.
'git-cvsserver' maps GIT branches to CVS modules. This is very different
@@ -84,7 +81,7 @@ one or more directories.
INSTALLATION
------------
-1. If you are going to offer anonymous CVS access via pserver, add a line in
+1. If you are going to offer CVS access via pserver, add a line in
/etc/inetd.conf like
+
--
@@ -101,6 +98,38 @@ looks like
cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvsserver pserver
------
+
+Only anonymous access is provided by pserve 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 crypted password,
+for example:
+
+------
+ myuser:$1Oyx5r9mdGZ2
+ myuser:$1$BA)@$vbnMJMDym7tA32AamXrm./
+------
+You can use the 'htpasswd' facility that comes with Apache to make these
+files, but Apache's MD5 crypt method differs from the one used by most C
+library's crypt() function, so don't use the -m option.
+
+Alternatively you can produce the password with perl's crypt() operator:
+-----
+ perl -e 'my ($user, $pass) = @ARGV; printf "%s:%s\n", $user, crypt($user, $pass)' $USER password
+-----
+
+Then provide your password via the pserver method, for example:
+------
+ cvs -d:pserver:someuser:somepassword <at> 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`.