cvsserver: Make the database backend configurable
authorFrank Lichtenheld <frank@lichtenheld.de>
Mon, 19 Mar 2007 15:56:00 +0000 (16:56 +0100)
committerJunio C Hamano <junkio@cox.net>
Thu, 22 Mar 2007 08:26:26 +0000 (01:26 -0700)
commiteb1780d480c2c57c58024692055a6ee33074a95f
treeb984b289af1365fdfe8d7212cab7cce82ddfd44a
parentd55820ced668477e07be7d9488c7965906a61b54
cvsserver: Make the database backend configurable

Make all the different parts of the database backend connection
configurable. This adds the following string configuration variables:
- gitcvs.dbdriver
- gitcvs.dbname
- gitcvs.dbuser
- gitcvs.dbpass
The default values emulate the current behavior exactly for
backwards compatibility.
All configuration variables can also be specified for a specific
access method (i.e. in the form gitcvs.<method>.<var>)

The dbdriver/dbuser/dbpass variables are added for completness.
No other backend than SQLite is tested yet.
The dbname variable on the other hand is useful with this backend
already (to not discriminate against other possible backends
it was not splitted in dbdir and dbfile).

Both dbname and dbuser support dynamic variable substitution where
the available variables are:
%m -- the CVS 'module' (i.e. GIT 'head') worked on
%a -- CVS access method used (i.e. 'ext' or 'pserver')
%u -- User name of the user invoking git-cvsserver
%G -- .git directory name
%g -- .git directory name, mangled to be used in a filename,
      currently this substitutes all chars except for [\w.-]
      with '_'

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
git-cvsserver.perl