You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
3.3 KiB
113 lines
3.3 KiB
git-cvsserver(1) |
|
================ |
|
|
|
NAME |
|
---- |
|
git-cvsserver - A CVS server emulator for git |
|
|
|
|
|
SYNOPSIS |
|
-------- |
|
[verse] |
|
export CVS_SERVER=git-cvsserver |
|
'cvs' -d :ext:user@server/path/repo.git co <HEAD_name> |
|
|
|
|
|
DESCRIPTION |
|
----------- |
|
|
|
This application is a CVS emulation layer for git. |
|
|
|
It is highly functional. However, not all methods are implemented, |
|
and for those methods that are implemented, |
|
not all switches are implemented. |
|
|
|
Testing has been done using both the CLI CVS client, and the Eclipse CVS |
|
plugin. Most functionality works fine with both of these clients. |
|
|
|
LIMITATIONS |
|
----------- |
|
Currently gitcvs only works over ssh connections. |
|
|
|
|
|
INSTALLATION |
|
------------ |
|
1. Put server.pl somewhere useful on the same machine that is hosting your git repos |
|
|
|
2. For each repo that you want accessible from CVS you need to edit config in |
|
the repo and add the following section. |
|
|
|
[gitcvs] |
|
enabled=1 |
|
logfile=/path/to/logfile |
|
|
|
n.b. you need to ensure each user that is going to invoke server.pl has |
|
write access to the log file. |
|
|
|
5. On each 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. |
|
CVS_SERVER should be set to the server.pl script that has been put on the |
|
remote machine. |
|
|
|
6. Clients should now be able to check out modules (where modules are the names |
|
of branches in git). |
|
$ cvs co -d mylocaldir master |
|
|
|
Eclipse CVS Client Notes |
|
------------------------ |
|
|
|
To get a checkout with the Eclipse CVS client: |
|
|
|
1. Create a new project from CVS checkout, giving it repository and module |
|
2. Context Menu->Team->Share Project... |
|
3. Enter the repository and module information again and click Finish |
|
4. The Synchronize view appears. Untick "launch commit wizard" to avoid |
|
committing the .project file, and select HEAD as the tag to synchronize to. |
|
Update all incoming changes. |
|
|
|
Note that most versions of Eclipse ignore CVS_SERVER (which you can set in |
|
the Preferences->Team->CVS->ExtConnection pane), so you may have to |
|
rename, alias or symlink git-cvsserver to 'cvs' on the server. |
|
|
|
Clients known to work |
|
--------------------- |
|
|
|
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 |
|
|
|
Operations supported |
|
-------------------- |
|
|
|
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. |
|
|
|
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. |
|
|
|
Dependencies |
|
------------ |
|
|
|
git-cvsserver depends on DBD::SQLite. |
|
|
|
Copyright and Authors |
|
--------------------- |
|
|
|
This program is copyright The Open University UK - 2006. |
|
|
|
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>. |
|
|
|
Documentation |
|
-------------- |
|
Documentation by Martyn Smith <martyn@catalyst.net.nz> and Martin Langhoff <martin@catalyst.net.nz>Matthias Urlichs <smurf@smurf.noris.de>. |
|
|
|
GIT |
|
--- |
|
Part of the gitlink:git[7] suite
|
|
|