From a2ad99e24c573fd7fa47ca4df15fc1e8e5f923fc Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 18 Apr 2007 09:57:04 +0000 Subject: [PATCH] Autogenerated HTML docs for v1.5.1.1-174-gabbf5 --- config.txt | 26 ++++++++ git-config.html | 44 +++++++++++++- git-cvsserver.html | 148 +++++++++++++++++++++++++++++++++++++++++++-- git-cvsserver.txt | 107 +++++++++++++++++++++++++++++++- 4 files changed, 317 insertions(+), 8 deletions(-) diff --git a/config.txt b/config.txt index 7e41ca6a0..2c0a66632 100644 --- a/config.txt +++ b/config.txt @@ -423,8 +423,34 @@ gitcvs.allbinary:: causes the client to treat all files as binary files which suppresses any newline munging it otherwise might do. A work-around for the fact that there is no way yet to set single files to mode '-kb'. + +gitcvs.dbname:: + Database used by git-cvsserver to cache revision information + derived from the git repository. The exact meaning depends on the + used database driver, for SQLite (which is the default driver) this + is a filename. Supports variable substitution (see + gitlink:git-cvsserver[1] for details). May not contain semicolons (`;`). + Default: '%Ggitcvs.%m.sqlite' + +gitcvs.dbdriver:: + Used Perl DBI driver. You can specify any available driver + for this here, but it might not work. git-cvsserver is tested + with 'DBD::SQLite', reported to work with 'DBD::Pg', and + reported *not* to work with 'DBD::mysql'. Experimental feature. + May not contain double colons (`:`). Default: 'SQLite'. See gitlink:git-cvsserver[1]. +gitcvs.dbuser, gitcvs.dbpass:: + Database user and password. Only useful if setting 'gitcvs.dbdriver', + since SQLite has no concept of database users and/or passwords. + 'gitcvs.dbuser' supports variable substitution (see + gitlink:git-cvsserver[1] for details). + +All gitcvs variables except for 'gitcvs.allbinary' can also specifed +as 'gitcvs..' (where 'access_method' is one +of "ext" and "pserver") to make them apply only for the given access +method. + http.sslVerify:: Whether to verify the SSL certificate when fetching or pushing over HTTPS. Can be overridden by the 'GIT_SSL_NO_VERIFY' environment diff --git a/git-config.html b/git-config.html index c01792896..8245cf398 100644 --- a/git-config.html +++ b/git-config.html @@ -1178,10 +1178,52 @@ gitcvs.allbinary causes the client to treat all files as binary files which suppresses any newline munging it otherwise might do. A work-around for the fact that there is no way yet to set single files to mode -kb. +

+ +
+gitcvs.dbname +
+
+

+ Database used by git-cvsserver to cache revision information + derived from the git repository. The exact meaning depends on the + used database driver, for SQLite (which is the default driver) this + is a filename. Supports variable substitution (see + git-cvsserver(1) for details). May not contain semicolons (;). + Default: %Ggitcvs.%m.sqlite +

+
+
+gitcvs.dbdriver +
+
+

+ Used Perl DBI driver. You can specify any available driver + for this here, but it might not work. git-cvsserver is tested + with DBD::SQLite, reported to work with DBD::Pg, and + reported not to work with DBD::mysql. Experimental feature. + May not contain double colons (:). Default: SQLite. See git-cvsserver(1).

+gitcvs.dbuser, gitcvs.dbpass +
+
+

+ Database user and password. Only useful if setting gitcvs.dbdriver, + since SQLite has no concept of database users and/or passwords. + gitcvs.dbuser supports variable substitution (see + git-cvsserver(1) for details). +

+
+ +

All gitcvs variables except for gitcvs.allbinary can also specifed +as gitcvs.<access_method>.<varname> (where access_method is one +of "ext" and "pserver") to make them apply only for the given access +method.

+
+
http.sslVerify
@@ -1566,7 +1608,7 @@ transfer.unpackLimit diff --git a/git-cvsserver.html b/git-cvsserver.html index 85bc8da04..576bdb952 100644 --- a/git-cvsserver.html +++ b/git-cvsserver.html @@ -290,6 +290,9 @@ plugin. Most functionality works fine with both of these clients.

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.

+

git-cvsserver maps GIT branches to CVS modules. This is very different +from what most CVS users would expect since in CVS modules usually represent +one or more directories.

INSTALLATION

@@ -329,9 +332,21 @@ For each repo that you want accessible from CVS you need to edit config in

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.

+write access to the log file and to the database (see +Database Backend. If you want to offer write access over +SSH, the users of course also need write access to the git repository itself.

+

All configuration variables can also be overriden for a specific method of +access. Valid method names are "ext" (for SSH access) and "pserver". The +following example configuration would disable pserver access while still +allowing access over SSH.

+
+
+
   [gitcvs]
+        enabled=0
+
+   [gitcvs "ext"]
+        enabled=1
+
  • @@ -365,6 +380,131 @@ Clients should now be able to check out the project. Use the CVS module

  • +

    Database Backend

    +
    +

    git-cvsserver uses one database per git head (i.e. CVS module) to +store information about the repository for faster access. The +database doesn't contain any persitent data and can be completly +regenerated from the git repository at any time. The database +needs to be updated (i.e. written to) after every commit.

    +

    If the commit is done directly by using git (as opposed to +using git-cvsserver) the update will need to happen on the +next repository access by git-cvsserver, independent of +access method and requested operation.

    +

    That means that even if you offer only read access (e.g. by using +the pserver method), git-cvsserver should have write access to +the database to work reliably (otherwise you need to make sure +that the database if up-to-date all the time git-cvsserver is run).

    +

    By default it uses SQLite databases in the git directory, named +gitcvs.<module_name>.sqlite. Note that the SQLite backend creates +temporary files in the same directory as the database file on +write so it might not be enough to grant the users using +git-cvsserver write access to the database file without granting +them write access to the directory, too.

    +

    You can configure the database backend with the following +configuration variables:

    +

    Configuring database backend

    +

    git-cvsserver uses the Perl DBI module. Please also read +its documentation if changing these variables, especially +about DBI->connect().

    +
    +
    +gitcvs.dbname +
    +
    +

    + Database name. The exact meaning depends on the + used database driver, for SQLite this is a filename. + Supports variable substitution (see below). May + not contain semicolons (;). + Default: %Ggitcvs.%m.sqlite +

    +
    +
    +gitcvs.dbdriver +
    +
    +

    + Used DBI driver. You can specify any available driver + for this here, but it might not work. cvsserver is tested + with DBD::SQLite, reported to work with + DBD::Pg, and reported not to work with DBD::mysql. + Please regard this as an experimental feature. May not + contain double colons (:). + Default: SQLite +

    +
    +
    +gitcvs.dbuser +
    +
    +

    + Database user. Only useful if setting dbdriver, since + SQLite has no concept of database users. Supports variable + substitution (see below). +

    +
    +
    +gitcvs.dbpass +
    +
    +

    + Database password. Only useful if setting dbdriver, since + SQLite has no concept of database passwords. +

    +
    +
    +

    All variables can also be set per access method, see above.

    +

    Variable substitution

    +

    In dbdriver and dbuser you can use the following variables:

    +
    +
    +%G +
    +
    +

    + git directory name +

    +
    +
    +%g +
    +
    +

    + git directory name, where all characters except for + alpha-numeric ones, ., and - are replaced with + _ (this should make it easier to use the directory + name in a filename if wanted) +

    +
    +
    +%m +
    +
    +

    + CVS module/git head name +

    +
    +
    +%a +
    +
    +

    + access method (one of "ext" or "pserver") +

    +
    +
    +%u +
    +
    +

    + Name of the user running git-cvsserver. + If no name can be determined, the + numeric uid is used. +

    +
    +
    +

    Eclipse CVS Client Notes

    To get a checkout with the Eclipse CVS client:

    @@ -473,7 +613,7 @@ Martin Langhoff <martin@catalyst.net.nz>
    diff --git a/git-cvsserver.txt b/git-cvsserver.txt index f9e0c7737..d22844ba4 100644 --- a/git-cvsserver.txt +++ b/git-cvsserver.txt @@ -31,6 +31,10 @@ over pserver for anonymous CVS access. CVS clients cannot tag, branch or perform GIT merges. +git-cvsserver maps GIT branches to CVS modules. This is very different +from what most CVS users would expect since in CVS modules usually represent +one or more directories. + INSTALLATION ------------ @@ -65,9 +69,22 @@ env variable, you can rename git-cvsserver to cvs. ------ 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. +write access to the log file and to the database (see +<>. If you want to offer write access over +SSH, the users of course also need write access to the git repository itself. + +[[configaccessmethod]] +All configuration variables can also be overriden for a specific method of +access. Valid method names are "ext" (for SSH access) and "pserver". The +following example configuration would disable pserver access while still +allowing access over SSH. +------ + [gitcvs] + enabled=0 + + [gitcvs "ext"] + enabled=1 +------ -- 3. 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 @@ -93,6 +110,90 @@ Example: cvs co -d project-master master ------ +[[dbbackend]] +Database Backend +---------------- + +git-cvsserver uses one database per git head (i.e. CVS module) to +store information about the repository for faster access. The +database doesn't contain any persitent data and can be completly +regenerated from the git repository at any time. The database +needs to be updated (i.e. written to) after every commit. + +If the commit is done directly by using git (as opposed to +using git-cvsserver) the update will need to happen on the +next repository access by git-cvsserver, independent of +access method and requested operation. + +That means that even if you offer only read access (e.g. by using +the pserver method), git-cvsserver should have write access to +the database to work reliably (otherwise you need to make sure +that the database if up-to-date all the time git-cvsserver is run). + +By default it uses SQLite databases in the git directory, named +`gitcvs..sqlite`. Note that the SQLite backend creates +temporary files in the same directory as the database file on +write so it might not be enough to grant the users using +git-cvsserver write access to the database file without granting +them write access to the directory, too. + +You can configure the database backend with the following +configuration variables: + +Configuring database backend +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +git-cvsserver uses the Perl DBI module. Please also read +its documentation if changing these variables, especially +about `DBI->connect()`. + +gitcvs.dbname:: + Database name. The exact meaning depends on the + used database driver, for SQLite this is a filename. + Supports variable substitution (see below). May + not contain semicolons (`;`). + Default: '%Ggitcvs.%m.sqlite' + +gitcvs.dbdriver:: + Used DBI driver. You can specify any available driver + for this here, but it might not work. cvsserver is tested + with 'DBD::SQLite', reported to work with + 'DBD::Pg', and reported *not* to work with 'DBD::mysql'. + Please regard this as an experimental feature. May not + contain double colons (`:`). + Default: 'SQLite' + +gitcvs.dbuser:: + Database user. Only useful if setting `dbdriver`, since + SQLite has no concept of database users. Supports variable + substitution (see below). + +gitcvs.dbpass:: + Database password. Only useful if setting `dbdriver`, since + SQLite has no concept of database passwords. + +All variables can also be set per access method, see <>. + +Variable substitution +^^^^^^^^^^^^^^^^^^^^^ +In `dbdriver` and `dbuser` you can use the following variables: + +%G:: + git directory name +%g:: + git directory name, where all characters except for + alpha-numeric ones, `.`, and `-` are replaced with + `_` (this should make it easier to use the directory + name in a filename if wanted) +%m:: + CVS module/git head name +%a:: + access method (one of "ext" or "pserver") +%u:: + Name of the user running git-cvsserver. + If no name can be determined, the + numeric uid is used. + Eclipse CVS Client Notes ------------------------ -- 2.26.2