cvsserver: Add asciidoc documentation for new database backend configuration
Documents the new configuration variables and the variable substitution mechanism. Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de> Signed-off-by: Junio C Hamano <junkio@cox.net>maint
parent
473937ed44
commit
febe7dcc08
|
|
@ -65,11 +65,12 @@ env variable, you can rename git-cvsserver to cvs.
|
||||||
|
|
||||||
------
|
------
|
||||||
Note: you need to ensure each user that is going to invoke git-cvsserver has
|
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
|
write access to the log file and to the database (see
|
||||||
access via pserver, this means that the nobody user should have write access
|
<<dbbackend,Database Backend>>. If you want to offer write access over
|
||||||
to at least the sqlite database at the root of the repository.
|
SSH, the users of course also need write access to the git repository itself.
|
||||||
|
|
||||||
Both configuration variables can also be overriden for a specific method of
|
[[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
|
access. Valid method names are "ext" (for SSH access) and "pserver". The
|
||||||
following example configuration would disable pserver access while still
|
following example configuration would disable pserver access while still
|
||||||
allowing access over SSH.
|
allowing access over SSH.
|
||||||
|
|
@ -105,6 +106,84 @@ Example:
|
||||||
cvs co -d project-master master
|
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. 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 also write access to the directory.
|
||||||
|
|
||||||
|
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 <<configaccessmethod,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
|
Eclipse CVS Client Notes
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue