1 .\"Generated by db2man.xsl. Don't modify this, modify the source.
10 .de Sp \" Vertical space (when we can't use .PP)
16 .ie \\n(.$>=3 .ne \\$3
20 .TH "GIT-CVSSERVER" 1 "" "" ""
22 git-cvsserver \- A CVS server emulator for git
26 export CVS_SERVER=git\-cvsserver
27 \fIcvs\fR \-d :ext:user@server/path/repo\&.git co <HEAD_name>
33 This application is a CVS emulation layer for git\&.
36 It is highly functional\&. However, not all methods are implemented, and for those methods that are implemented, not all switches are implemented\&.
39 Testing has been done using both the CLI CVS client, and the Eclipse CVS plugin\&. Most functionality works fine with both of these clients\&.
44 Currently cvsserver works over SSH connections for read/write clients, and over pserver for anonymous CVS access\&.
47 CVS clients cannot tag, branch or perform GIT merges\&.
53 If you are going to offer anonymous CVS access via pserver, add a line in /etc/inetd\&.conf like
56 cvspserver stream tcp nowait nobody git\-cvsserver pserver
60 Note: In some cases, you need to pass the 'pserver' argument twice for
61 git\-cvsserver to see it\&. So the line would look like
65 cvspserver stream tcp nowait nobody git\-cvsserver pserver pserver
69 No special setup is needed for SSH access, other than having GIT tools
70 in the PATH\&. If you have clients that do not accept the CVS_SERVER
71 env variable, you can rename git\-cvsserver to cvs\&.
75 For each repo that you want accessible from CVS you need to edit config in the repo and add the following section\&.
80 # optional for debugging
81 logfile=/path/to/logfile
85 Note: you need to ensure each user that is going to invoke git\-cvsserver has
86 write access to the log file and to the git repository\&. When offering anon
87 access via pserver, this means that the nobody user should have write access
88 to at least the sqlite database at the root of the repository\&.
92 On the client machine you need to set the following variables\&. CVSROOT should be set as per normal, but the directory should point at the appropriate git repo\&. For example:
95 For SSH access, CVS_SERVER should be set to git\-cvsserver
103 export CVSROOT=:ext:user@server:/var/git/project\&.git
104 export CVS_SERVER=git\-cvsserver
108 For SSH clients that will make commits, make sure their \&.bashrc file sets the GIT_AUTHOR and GIT_COMMITTER variables\&.
111 Clients should now be able to check out the project\&. Use the CVS \fImodule\fR name to indicate what GIT \fIhead\fR you want to check out\&. Example:
114 cvs co \-d project\-master master
118 .SH "ECLIPSE CVS CLIENT NOTES"
121 To get a checkout with the Eclipse CVS client:
125 Select "Create a new project \-> From CVS checkout"
128 Create a new location\&. See the notes below for details on how to choose the right protocol\&.
131 Browse the \fImodules\fR available\&. It will give you a list of the heads in the repository\&. You will not be able to browse the tree from there\&. Only the heads\&.
134 Pick \fIHEAD\fR when it asks what branch/tag to check out\&. Untick the "launch commit wizard" to avoid committing the \&.project file\&.
138 Protocol notes: If you are using anonymous access via pserver, just select that\&. Those using SSH access should choose the \fIext\fR protocol, and configure \fIext\fR access on the Preferences\->Team\->CVS\->ExtConnection pane\&. Set CVS_SERVER to \fIgit\-cvsserver\fR\&. Not that password support is not good when using \fIext\fR, you will definitely want to have SSH keys setup\&.
141 Alternatively, you can just use the non\-standard extssh protocol that Eclipse offer\&. In that case CVS_SERVER is ignored, and you will have to replace the cvs utility on the server with git\-cvsserver or manipulate your \&.bashrc so that calling \fIcvs\fR effectively calls git\-cvsserver\&.
143 .SH "CLIENTS KNOWN TO WORK"
146 CVS 1\&.12\&.9 on Debian CVS 1\&.11\&.17 on MacOSX (from Fink package) Eclipse 3\&.0, 3\&.1\&.2 on MacOSX (see Eclipse CVS Client Notes) TortoiseCVS
148 .SH "OPERATIONS SUPPORTED"
151 All the operations required for normal use are supported, including checkout, diff, status, update, log, add, remove, commit\&. Legacy monitoring operations are not supported (edit, watch and related)\&. Exports and tagging (tags and branches) are not supported at this stage\&.
154 The server will set the \-k mode to binary when relevant\&. In proper GIT tradition, the contents of the files are always respected\&. No keyword expansion or newline munging is supported\&.
159 git\-cvsserver depends on DBD::SQLite\&.
161 .SH "COPYRIGHT AND AUTHORS"
164 This program is copyright The Open University UK \- 2006\&.
167 Authors: Martyn Smith <martyn@catalyst\&.net\&.nz> Martin Langhoff <martin@catalyst\&.net\&.nz> with ideas and patches from participants of the git\-list <git@vger\&.kernel\&.org>\&.
172 Documentation by Martyn Smith <martyn@catalyst\&.net\&.nz> and Martin Langhoff <martin@catalyst\&.net\&.nz> Matthias Urlichs <smurf@smurf\&.noris\&.de>\&.
177 Part of the \fBgit\fR(7) suite