All of lore.kernel.org
 help / color / mirror / Atom feed
From: Frank Lichtenheld <frank@lichtenheld.de>
To: git@vger.kernel.org
Cc: Junio C Hamano <junkio@cox.net>,
	Frank Lichtenheld <frank@lichtenheld.de>
Subject: [PATCH 3/3] cvsserver: Add asciidoc documentation for new database backend configuration
Date: Sat,  7 Apr 2007 16:58:10 +0200	[thread overview]
Message-ID: <11759578903791-git-send-email-frank@lichtenheld.de> (raw)
In-Reply-To: <11759578901878-git-send-email-frank@lichtenheld.de>

Documents the new configuration variables and the variable
substitution mechanism.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
---
 Documentation/git-cvsserver.txt |   87 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 83 insertions(+), 4 deletions(-)

 Proofreading would be greatly appreciated.

diff --git a/Documentation/git-cvsserver.txt b/Documentation/git-cvsserver.txt
index 2cf8153..efc7fa6 100644
--- a/Documentation/git-cvsserver.txt
+++ b/Documentation/git-cvsserver.txt
@@ -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
-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
+<<dbbackend,Database Backend>>. If you want to offer write access over
+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
 following example configuration would disable pserver access while still
 allowing access over SSH.
@@ -105,6 +106,84 @@ 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. 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
 ------------------------
 
-- 
1.5.1

  reply	other threads:[~2007-04-07 15:00 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-19 15:55 [PATCH/RFC] cvsserver: Make configuration way more flexible Frank Lichtenheld
2007-03-19 15:55 ` [PATCH 1/5] cvsserver: Introduce new state variable 'method' Frank Lichtenheld
2007-03-19 15:55 ` [PATCH 2/5] cvsserver: Handle three part keys in git config correctly Frank Lichtenheld
2007-03-19 15:55 ` [PATCH 3/5] cvsserver: Allow to override the configuration per access method Frank Lichtenheld
2007-03-19 15:56 ` [PATCH 4/5] cvsserver: Make the database backend configurable Frank Lichtenheld
2007-03-19 19:47   ` Martin Langhoff
2007-03-23 15:17     ` Frank Lichtenheld
2007-03-23 18:39       ` Frank Lichtenheld
2007-03-19 15:56 ` [PATCH 5/5] cvsserver: Abort if connect to database fails Frank Lichtenheld
2007-03-31 13:57 ` [PATCH] cvsserver: Use DBI->table_info instead of DBI->tables Frank Lichtenheld
2007-03-31 14:09   ` Frank Lichtenheld
2007-04-07 14:52 ` [PATCH 0/3] cvsserver: small corrections and bring documentation up to speed Frank Lichtenheld
2007-04-07 14:58   ` [PATCH 1/3] cvsserver: small corrections to asciidoc documentation Frank Lichtenheld
2007-04-07 14:58     ` [PATCH 2/3] cvsserver: Corrections to the database backend configuration Frank Lichtenheld
2007-04-07 14:58       ` Frank Lichtenheld [this message]
2007-04-08  8:44         ` [PATCH 3/3] cvsserver: Add asciidoc documentation for new " Junio C Hamano
2007-04-11 14:34           ` Frank Lichtenheld
2007-04-12 14:43           ` [PATCH (amend)] " Frank Lichtenheld
2007-04-13  0:13             ` Jakub Narebski
2007-04-13 16:13               ` [PATCH] config.txt: Add gitcvs.db* variables Frank Lichtenheld
2007-04-12 14:54           ` [PATCH] cvsserver: Document the GIT branches -> CVS modules mapping more prominently Frank Lichtenheld
2007-04-12 22:05             ` Junio C Hamano
2007-04-12 22:19               ` Frank Lichtenheld

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=11759578903791-git-send-email-frank@lichtenheld.de \
    --to=frank@lichtenheld.de \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.