X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-cvsserver.html;h=500cd5e554e910b0367e03d4e56345824e8ead35;hb=2bb13102e71913465f2e7d0739be127340b5b2c6;hp=06ac3e7d96914cfbfa6e65b516052be3e9f7f3be;hpb=9512fcf2eb939d41027c461663c736bed9d7306e;p=git.git diff --git a/git-cvsserver.html b/git-cvsserver.html index 06ac3e7d..500cd5e5 100644 --- a/git-cvsserver.html +++ b/git-cvsserver.html @@ -287,15 +287,37 @@ plugin. Most functionality works fine with both of these clients.

LIMITATIONS

-

Currently gitcvs only works over ssh connections.

+

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.

INSTALLATION

  1. -Put server.pl somewhere useful on the same machine that is hosting your git repos +If you are going to offer anonymous CVS access via pserver, add a line in + /etc/inetd.conf like

    +
    +
    +
    cvspserver stream tcp nowait nobody git-cvsserver pserver
    +
    +
    +
    +
    Note: In some cases, you need to pass the 'pserver' argument twice for
    +git-cvsserver to see it. So the line would look like
    +
    +
    +
    +
    cvspserver stream tcp nowait nobody git-cvsserver pserver pserver
    +
    +
    +
    +
    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
    +env variable, you can rename git-cvsserver to cvs.
    +
  2. @@ -306,29 +328,52 @@ For each repo that you want accessible from CVS you need to edit config in

    [gitcvs]
          enabled=1
    +     # optional for debugging
          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.
+
Note: you need to ensure each user that is going to invoke git-cvsserver has
+write access to the log file and to the git repository. When offering anon
+access via pserver, this means that the nobody user should have write access
+to at least the sqlite database at the root of the repository.
+
+ +
  • +

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

    +
    +
    +
    For SSH access, CVS_SERVER should be set to git-cvsserver
    +
    +
    +
    +
    Example:
    +
    +
    +
    +
    export CVSROOT=:ext:user@server:/var/git/project.git
    +export CVS_SERVER=git-cvsserver
  • -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. +For SSH clients that will make commits, make sure their .bashrc file + sets the GIT_AUTHOR and GIT_COMMITTER variables.

  • -Clients should now be able to check out modules (where modules are the names - of branches in git). - $ cvs co -d mylocaldir master +Clients should now be able to check out the project. Use the CVS module + name to indicate what GIT head you want to check out. Example:

    +
    +
    +
    cvs co -d project-master master
    +
  • @@ -338,30 +383,38 @@ Clients should now be able to check out modules (where modules are the names
    1. -Create a new project from CVS checkout, giving it repository and module +Select "Create a new project -> From CVS checkout"

    2. -Context Menu->Team->Share Project… +Create a new location. See the notes below for details on how to choose the + right protocol.

    3. -Enter the repository and module information again and click Finish +Browse the modules 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.

    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. +Pick HEAD when it asks what branch/tag to check out. Untick the + "launch commit wizard" to avoid committing the .project file.

    -

    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.

    +

    Protocol notes: If you are using anonymous acces via pserver, just select that. +Those using SSH access should choose the ext protocol, and configure ext +access on the Preferences->Team->CVS->ExtConnection pane. Set CVS_SERVER to +git-cvsserver. Not that password support is not good when using ext, +you will definitely want to have SSH keys setup.

    +

    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 cvs effectively calls git-cvsserver.

    Clients known to work

    @@ -393,7 +446,7 @@ No keyword expansion or newline munging is supported.

    Documentation

    -

    Documentation by Martyn Smith <martyn@catalyst.net.nz> and Martin Langhoff <martin@catalyst.net.nz>Matthias Urlichs <smurf@smurf.noris.de>.

    +

    Documentation by Martyn Smith <martyn@catalyst.net.nz> and Martin Langhoff <martin@catalyst.net.nz> Matthias Urlichs <smurf@smurf.noris.de>.

    GIT

    @@ -401,7 +454,7 @@ No keyword expansion or newline munging is supported.