|
|
|
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
|