{"thread":{"id":"3564","subject":"[PATCH] cvsserver: updated documentation","startedAt":"2006-03-05T10:11:00Z","lastAt":"2006-03-05T10:11:00Z","messageCount":1,"participants":["Martin Langhoff"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"17179","messageId":"114155346045-git-send-email-martin@catalyst.net.nz","threadId":"3564","inReplyTo":null,"subject":"[PATCH] cvsserver: updated documentation","fromName":"Martin Langhoff","fromEmail":"martin@catalyst.net.nz","sentAt":"2006-03-05T10:11:00Z","receivedAt":"2006-03-05T10:11:00Z","isPatch":true,"sender":{"key":"martin@laptop.org","avatar":null},"body":"... and stripped trailing whitespace to appease the Gods...\n\nSigned-off-by: Martin Langhoff <martin@catalyst.net.nz>\n\n\n---\n\n Documentation/git-cvsserver.txt |   87 +++++++++++++++++++++++++++------------\n 1 files changed, 61 insertions(+), 26 deletions(-)\n\na67387be3b0dd572f78da9befe27303b20e9cbf1\ndiff --git a/Documentation/git-cvsserver.txt b/Documentation/git-cvsserver.txt\nindex 19c9c51..4dc13c3 100644\n--- a/Documentation/git-cvsserver.txt\n+++ b/Documentation/git-cvsserver.txt\n@@ -5,14 +5,12 @@ NAME\n ----\n git-cvsserver - A CVS server emulator for git\n \n-\n SYNOPSIS\n --------\n [verse]\n export CVS_SERVER=git-cvsserver\n 'cvs' -d :ext:user@server/path/repo.git co <HEAD_name>\n \n-\n DESCRIPTION\n -----------\n \n@@ -27,48 +25,85 @@ plugin. Most functionality works fine wi\n \n LIMITATIONS\n -----------\n-Currently gitcvs only works over ssh connections.\n \n+Currently cvsserver works over SSH connections for read/write clients, and\n+over pserver for anonymous CVS access.\n+\n+CVS clients cannot tag, branch or perform GIT merges.\n \n INSTALLATION\n ------------\n-1. Put server.pl somewhere useful on the same machine that is hosting your git repos\n+\n+1. If you are going to offer anonymous CVS access via pserver, add a line in\n+   /etc/inetd.conf like\n+\n+   cvspserver stream tcp nowait nobody git-cvsserver pserver\n+\n+   Note: In some cases, you need to pass the 'pserver' argument twice for\n+   git-cvsserver to see it. So the line would look like\n+\n+   cvspserver stream tcp nowait nobody git-cvsserver pserver pserver\n+\n+   No special setup is needed for SSH access, other than having GIT tools\n+   in the PATH. If you have clients that do not accept the CVS_SERVER\n+   env variable, you can rename git-cvsserver to cvs.\n \n 2. For each repo that you want accessible from CVS you need to edit config in\n    the repo and add the following section.\n \n    [gitcvs]\n         enabled=1\n+        # optional for debugging\n         logfile=/path/to/logfile\n \n-   n.b. you need to ensure each user that is going to invoke server.pl has\n-   write access to the log file.\n+   Note: you need to ensure each user that is going to invoke git-cvsserver has\n+   write access to the log file and to the git repository. When offering anon\n+   access via pserver, this means that the nobody user should have write access\n+   to at least the sqlite database at the root of the repository.\n+\n+3. On the client machine you need to set the following variables.\n+   CVSROOT should be set as per normal, but the directory should point at the\n+   appropriate git repo. For example:\n+\n+   For SSH access, CVS_SERVER should be set to git-cvsserver\n+\n+   Example:\n+\n+     export CVSROOT=:ext:user@server:/var/git/project.git\n+     export CVS_SERVER=git-cvsserver\n+\n+4. For SSH clients that will make commits, make sure their .bashrc file\n+   sets the GIT_AUTHOR and GIT_COMMITTER variables.\n+\n+5. Clients should now be able to check out the project. Use the CVS 'module'\n+   name to indicate what GIT 'head' you want to check out. Example:\n \n-5. On each client machine you need to set the following variables.\n-     CVSROOT should be set as per normal, but the directory should point at the\n-             appropriate git repo.\n-     CVS_SERVER should be set to the server.pl script that has been put on the\n-                remote machine.\n-\n-6. Clients should now be able to check out modules (where modules are the names\n-   of branches in git).\n-     $ cvs co -d mylocaldir master\n+     cvs co -d project-master master\n \n Eclipse CVS Client Notes\n ------------------------\n \n To get a checkout with the Eclipse CVS client:\n \n-1. Create a new project from CVS checkout, giving it repository and module\n-2. Context Menu->Team->Share Project...\n-3. Enter the repository and module information again and click Finish\n-4. The Synchronize view appears. Untick  \"launch commit wizard\" to avoid\n-committing the .project file, and select HEAD as the tag to synchronize to.\n-Update all incoming changes.\n-\n-Note that most versions of Eclipse ignore CVS_SERVER (which you can set in\n-the Preferences->Team->CVS->ExtConnection pane), so you may have to\n-rename, alias or symlink git-cvsserver to 'cvs' on the server.\n+1. Select \"Create a new project -> From CVS checkout\"\n+2. Create a new location. See the notes below for details on how to choose the\n+   right protocol.\n+3. Browse the 'modules' available. It will give you a list of the heads in\n+   the repository. You will not be able to browse the tree from there. Only\n+   the heads.\n+4. Pick 'HEAD' when it asks what branch/tag to check out. Untick the\n+   \"launch commit wizard\" to avoid committing the .project file.\n+\n+Protocol notes: If you are using anonymous acces via pserver, just select that.\n+Those using SSH access should choose the 'ext' protocol, and configure 'ext'\n+access on the Preferences->Team->CVS->ExtConnection pane. Set CVS_SERVER to\n+'git-cvsserver'. Not that password support is not good when using 'ext',\n+you will definitely want to have SSH keys setup.\n+\n+Alternatively, you can just use the non-standard extssh protocol that Eclipse\n+offer. In that case CVS_SERVER is ignored, and you will have to replace\n+the cvs utility on the server with git-cvsserver or manipulate your .bashrc\n+so that calling 'cvs' effectively calls git-cvsserver.\n \n Clients known to work\n ---------------------\n@@ -106,7 +141,7 @@ Authors: Martyn Smith    <martyn@catalys\n \n Documentation\n --------------\n-Documentation by Martyn Smith <martyn@catalyst.net.nz> and Martin Langhoff <martin@catalyst.net.nz>Matthias Urlichs <smurf@smurf.noris.de>.\n+Documentation by Martyn Smith <martyn@catalyst.net.nz> and Martin Langhoff <martin@catalyst.net.nz> Matthias Urlichs <smurf@smurf.noris.de>.\n \n GIT\n ---\n-- \n1.2.4.g0a60\n"}]}