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>
1 file changed
tree: b984b289af1365fdfe8d7212cab7cce82ddfd44a
  1. arm/
  2. compat/
  3. contrib/
  4. Documentation/
  5. git-gui/
  6. gitweb/
  7. mozilla-sha1/
  8. perl/
  9. ppc/
  10. t/
  11. templates/
  12. xdiff/
  13. .gitignore
  14. .mailmap
  15. alloc.c
  16. archive-tar.c
  17. archive-zip.c
  18. archive.h
  19. base85.c
  20. blob.c
  21. blob.h
  22. builtin-add.c
  23. builtin-annotate.c
  24. builtin-apply.c
  25. builtin-archive.c
  26. builtin-blame.c
  27. builtin-branch.c
  28. builtin-bundle.c
  29. builtin-cat-file.c
  30. builtin-check-ref-format.c
  31. builtin-checkout-index.c
  32. builtin-commit-tree.c
  33. builtin-config.c
  34. builtin-count-objects.c
  35. builtin-describe.c
  36. builtin-diff-files.c
  37. builtin-diff-index.c
  38. builtin-diff-tree.c
  39. builtin-diff.c
  40. builtin-fetch--tool.c
  41. builtin-fmt-merge-msg.c
  42. builtin-for-each-ref.c
  43. builtin-fsck.c
  44. builtin-gc.c
  45. builtin-grep.c
  46. builtin-init-db.c
  47. builtin-log.c
  48. builtin-ls-files.c
  49. builtin-ls-tree.c
  50. builtin-mailinfo.c
  51. builtin-mailsplit.c
  52. builtin-merge-base.c
  53. builtin-merge-file.c
  54. builtin-mv.c
  55. builtin-name-rev.c
  56. builtin-pack-objects.c
  57. builtin-pack-refs.c
  58. builtin-prune-packed.c
  59. builtin-prune.c
  60. builtin-push.c
  61. builtin-read-tree.c
  62. builtin-reflog.c
  63. builtin-rerere.c
  64. builtin-rev-list.c
  65. builtin-rev-parse.c
  66. builtin-revert.c
  67. builtin-rm.c
  68. builtin-runstatus.c
  69. builtin-shortlog.c
  70. builtin-show-branch.c
  71. builtin-show-ref.c
  72. builtin-stripspace.c
  73. builtin-symbolic-ref.c
  74. builtin-tar-tree.c
  75. builtin-unpack-objects.c
  76. builtin-update-index.c
  77. builtin-update-ref.c
  78. builtin-upload-archive.c
  79. builtin-verify-pack.c
  80. builtin-write-tree.c
  81. builtin.h
  82. cache-tree.c
  83. cache-tree.h
  84. cache.h
  85. check-builtins.sh
  86. check-racy.c
  87. color.c
  88. color.h
  89. combine-diff.c
  90. commit.c
  91. commit.h
  92. config.c
  93. config.mak.in
  94. configure.ac
  95. connect.c
  96. convert-objects.c
  97. convert.c
  98. copy.c
  99. COPYING
  100. csum-file.c
  101. csum-file.h
  102. ctype.c
  103. daemon.c
  104. date.c
  105. delta.h
  106. diff-delta.c
  107. diff-lib.c
  108. diff.c
  109. diff.h
  110. diffcore-break.c
  111. diffcore-delta.c
  112. diffcore-order.c
  113. diffcore-pickaxe.c
  114. diffcore-rename.c
  115. diffcore.h
  116. dir.c
  117. dir.h
  118. dump-cache-tree.c
  119. entry.c
  120. environment.c
  121. exec_cmd.c
  122. exec_cmd.h
  123. fast-import.c
  124. fetch-pack.c
  125. fetch.c
  126. fetch.h
  127. generate-cmdlist.sh
  128. git-add--interactive.perl
  129. git-am.sh
  130. git-applymbox.sh
  131. git-applypatch.sh
  132. git-archimport.perl
  133. git-bisect.sh
  134. git-checkout.sh
  135. git-clean.sh
  136. git-clone.sh
  137. git-commit.sh
  138. git-compat-util.h
  139. git-cvsexportcommit.perl
  140. git-cvsimport.perl
  141. git-cvsserver.perl
  142. git-fetch.sh
  143. git-instaweb.sh
  144. git-lost-found.sh
  145. git-ls-remote.sh
  146. git-merge-octopus.sh
  147. git-merge-one-file.sh
  148. git-merge-ours.sh
  149. git-merge-resolve.sh
  150. git-merge-stupid.sh
  151. git-merge.sh
  152. git-mergetool.sh
  153. git-p4import.py
  154. git-parse-remote.sh
  155. git-pull.sh
  156. git-quiltimport.sh
  157. git-rebase.sh
  158. git-relink.perl
  159. git-remote.perl
  160. git-repack.sh
  161. git-request-pull.sh
  162. git-reset.sh
  163. git-send-email.perl
  164. git-sh-setup.sh
  165. git-svn.perl
  166. git-svnimport.perl
  167. git-tag.sh
  168. git-verify-tag.sh
  169. GIT-VERSION-GEN
  170. git.c
  171. git.spec.in
  172. gitk
  173. grep.c
  174. grep.h
  175. hash-object.c
  176. help.c
  177. http-fetch.c
  178. http-push.c
  179. http.c
  180. http.h
  181. ident.c
  182. imap-send.c
  183. index-pack.c
  184. INSTALL
  185. interpolate.c
  186. interpolate.h
  187. list-objects.c
  188. list-objects.h
  189. local-fetch.c
  190. lockfile.c
  191. log-tree.c
  192. log-tree.h
  193. Makefile
  194. merge-file.c
  195. merge-index.c
  196. merge-recursive.c
  197. merge-tree.c
  198. mktag.c
  199. mktree.c
  200. object-refs.c
  201. object.c
  202. object.h
  203. pack-check.c
  204. pack-redundant.c
  205. pack.h
  206. pager.c
  207. patch-delta.c
  208. patch-id.c
  209. path-list.c
  210. path-list.h
  211. path.c
  212. peek-remote.c
  213. pkt-line.c
  214. pkt-line.h
  215. quote.c
  216. quote.h
  217. reachable.c
  218. reachable.h
  219. read-cache.c
  220. README
  221. receive-pack.c
  222. reflog-walk.c
  223. reflog-walk.h
  224. refs.c
  225. refs.h
  226. revision.c
  227. revision.h
  228. rsh.c
  229. rsh.h
  230. run-command.c
  231. run-command.h
  232. send-pack.c
  233. server-info.c
  234. setup.c
  235. sha1_file.c
  236. sha1_name.c
  237. shallow.c
  238. shell.c
  239. show-index.c
  240. sideband.c
  241. sideband.h
  242. ssh-fetch.c
  243. ssh-pull.c
  244. ssh-push.c
  245. ssh-upload.c
  246. strbuf.c
  247. strbuf.h
  248. tag.c
  249. tag.h
  250. tar.h
  251. test-chmtime.c
  252. test-date.c
  253. test-delta.c
  254. test-sha1.c
  255. test-sha1.sh
  256. trace.c
  257. tree-diff.c
  258. tree-walk.c
  259. tree-walk.h
  260. tree.c
  261. tree.h
  262. unpack-file.c
  263. unpack-trees.c
  264. unpack-trees.h
  265. update-server-info.c
  266. upload-pack.c
  267. usage.c
  268. utf8.c
  269. utf8.h
  270. var.c
  271. write_or_die.c
  272. wt-status.c
  273. wt-status.h
  274. xdiff-interface.c
  275. xdiff-interface.h