Documentation / git-cvsserver.txton commit Merge branch 'lt/rev-list' into next (2b443e0)
   1git-cvsserver(1)
   2================
   3
   4NAME
   5----
   6git-cvsserver - A CVS server emulator for git
   7
   8
   9SYNOPSIS
  10--------
  11[verse]
  12export CVS_SERVER=git-cvsserver
  13'cvs' -d :ext:user@server/path/repo.git co <HEAD_name>
  14
  15
  16DESCRIPTION
  17-----------
  18
  19This application is a CVS emulation layer for git.
  20
  21It is highly functional. However, not all methods are implemented,
  22and for those methods that are implemented,
  23not all switches are implemented.
  24
  25Testing has been done using both the CLI CVS client, and the Eclipse CVS
  26plugin. Most functionality works fine with both of these clients.
  27
  28LIMITATIONS
  29-----------
  30Currently gitcvs only works over ssh connections.
  31
  32
  33INSTALLATION
  34------------
  351. Put server.pl somewhere useful on the same machine that is hosting your git repos
  36
  372. For each repo that you want accessible from CVS you need to edit config in
  38   the repo and add the following section.
  39
  40   [gitcvs]
  41        enabled=1
  42        logfile=/path/to/logfile
  43
  44   n.b. you need to ensure each user that is going to invoke server.pl has
  45   write access to the log file.
  46
  475. On each client machine you need to set the following variables.
  48     CVSROOT should be set as per normal, but the directory should point at the
  49             appropriate git repo.
  50     CVS_SERVER should be set to the server.pl script that has been put on the
  51                remote machine.
  52
  536. Clients should now be able to check out modules (where modules are the names
  54   of branches in git).
  55     $ cvs co -d mylocaldir master
  56
  57Eclipse CVS Client Notes
  58------------------------
  59
  60To get a checkout with the Eclipse CVS client:
  61
  621. Create a new project from CVS checkout, giving it repository and module
  632. Context Menu->Team->Share Project...
  643. Enter the repository and module information again and click Finish
  654. The Synchronize view appears. Untick  "launch commit wizard" to avoid
  66committing the .project file, and select HEAD as the tag to synchronize to.
  67Update all incoming changes.
  68
  69Note that most versions of Eclipse ignore CVS_SERVER (which you can set in
  70the Preferences->Team->CVS->ExtConnection pane), so you may have to
  71rename, alias or symlink git-cvsserver to 'cvs' on the server.
  72
  73Clients known to work
  74---------------------
  75
  76CVS 1.12.9 on Debian
  77CVS 1.11.17 on MacOSX (from Fink package)
  78Eclipse 3.0, 3.1.2 on MacOSX (see Eclipse CVS Client Notes)
  79TortoiseCVS
  80
  81Operations supported
  82--------------------
  83
  84All the operations required for normal use are supported, including
  85checkout, diff, status, update, log, add, remove, commit.
  86Legacy monitoring operations are not supported (edit, watch and related).
  87Exports and tagging (tags and branches) are not supported at this stage.
  88
  89The server will set the -k mode to binary when relevant. In proper GIT
  90tradition, the contents of the files are always respected.
  91No keyword expansion or newline munging is supported.
  92
  93Dependencies
  94------------
  95
  96git-cvsserver depends on DBD::SQLite.
  97
  98Copyright and Authors
  99---------------------
 100
 101This program is copyright The Open University UK - 2006.
 102
 103Authors: Martyn Smith    <martyn@catalyst.net.nz>
 104         Martin Langhoff <martin@catalyst.net.nz>
 105         with ideas and patches from participants of the git-list <git@vger.kernel.org>.
 106
 107Documentation
 108--------------
 109Documentation by Martyn Smith <martyn@catalyst.net.nz> and Martin Langhoff <martin@catalyst.net.nz>Matthias Urlichs <smurf@smurf.noris.de>.
 110
 111GIT
 112---
 113Part of the gitlink:git[7] suite