git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 4/5] cvsserver: Make the database backend configurable

From
Frank Lichtenheld <frank@lichtenheld.de>
Date
Mar 23, 2007, 15:17 UTC
Message-ID
<20070323151757.GH8017@planck.djpig.de>
In-Reply-To
<46a038f90703191247y6b70c272s2473ab28acd63682@mail.gmail.com>
On Tue, Mar 20, 2007 at 07:47:12AM +1200, Martin Langhoff wrote:
Show 7 quoted lines
> On 3/20/07, Frank Lichtenheld <frank@lichtenheld.de> wrote:
> >Make all the different parts of the database backend connection
> >configurable. This adds the following string configuration variables:
> 
> Nice. I guess the hard part of this is going to be creating DB schemas
> that are reasonably portable. The SQL we use is as vanilla as it gets
> ;-)

I've now actually made a quick test to see how we do when using other backends (with PostgreSQL 8.2, will also do one with MySQL later).

Some problems that I saw:
 - It would probably cool to be able to tell git-cvsserver that it
   should use only one database for all modules (i.e. git branches)
   This way one doesn't need to give the users database creation
   privileges. Of course pre-creating all databases possibly ever needed
   is possible but somewhat cumbersome.
 
 - DBI->tables seems to be a portability problem. e.g. with SQLite
   it returns "head", "commitmsgs", etc; with PostgreSQL it returns
   public.head, public.commitmsgs, etc. The output of MySQL might
   be different, too.
Show 11 quoted lines
> >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 '_'
> 
> It's missing from the POD though ;-)
You mean the asciidoc, right?

And yeah, I know. Writing English documentation is not actually one of my preferred occupations :/ Will do it, though.

[...]
> with those 2 in place, we'd have a means of applying a "vampire tap"
> to an existing cvs server and take over without anyone noticing. But
> tehy are both hard, hard hard.
Indeed.
Gruesse,
-- 
Frank Lichtenheld <frank@lichtenheld.de>
www: http://www.djpig.de/
Previous: Martin LanghoffNext: Frank Lichtenheld
Message 7 of 23 in “cvsserver: Make configuration way more flexible”
  1. cvsserver: Make configuration way more flexibleFrank Lichtenheld, Mar 19, 2007
  2. 1/5 cvsserver: Introduce new state variable 'method'Frank Lichtenheld, Mar 19, 2007
  3. 2/5 cvsserver: Handle three part keys in git config correctlyFrank Lichtenheld, Mar 19, 2007
  4. 3/5 cvsserver: Allow to override the configuration per access methodFrank Lichtenheld, Mar 19, 2007
  5. 4/5 cvsserver: Make the database backend configurableFrank Lichtenheld, Mar 19, 2007
  6. Martin LanghoffMar 19, 2007
  7. Frank LichtenheldMar 23, 2007
  8. Frank LichtenheldMar 23, 2007
  9. 5/5 cvsserver: Abort if connect to database failsFrank Lichtenheld, Mar 19, 2007
  10. cvsserver: Use DBI->table_info instead of DBI->tablesFrank Lichtenheld, Mar 31, 2007
  11. Frank LichtenheldMar 31, 2007
  12. 0/3 cvsserver: small corrections and bring documentation up to speedFrank Lichtenheld, Apr 7, 2007
  13. 1/3 cvsserver: small corrections to asciidoc documentationFrank Lichtenheld, Apr 7, 2007
  14. 2/3 cvsserver: Corrections to the database backend configurationFrank Lichtenheld, Apr 7, 2007
  15. 3/3 cvsserver: Add asciidoc documentation for new database backend configurationFrank Lichtenheld, Apr 7, 2007
  16. Junio C HamanoApr 8, 2007
  17. Frank LichtenheldApr 11, 2007
  18. cvsserver: Add asciidoc documentation for new database backend configurationFrank Lichtenheld, Apr 12, 2007
  19. Jakub NarebskiApr 13, 2007
  20. config.txt: Add gitcvs.db* variablesFrank Lichtenheld, Apr 13, 2007
  21. cvsserver: Document the GIT branches -> CVS modules mapping more prominentlyFrank Lichtenheld, Apr 12, 2007
  22. Junio C HamanoApr 12, 2007
  23. Frank LichtenheldApr 12, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.