From: Josh Elsasser Date: Thu, 27 Mar 2008 20:57:27 GMT Subject: Re: [PATCH v2] Allow git-cvsserver database table name prefix to be specified. Message-ID: <20080327205727.GN2324@opal.elsasser.org> In-Reply-To: <7vwsnyx8ga.fsf@gitster.siamese.dyndns.org> On Wed, Mar 19, 2008 at 10:36:53PM -0700, Junio C Hamano wrote: > Josh Elsasser writes: > > > The purpose of this patch is to easily allow a single database (think > > PostgreSQL or MySQL) to be shared by multiple repositories. > > I am not sure if this is even a good idea. You can share a single > database cluster (in PostgreSQL lingo, I do not recall how MySQL calls it) > and have multiple database instances on it, which would give you better > isolation between repositories. What's the advantage of your approach, I > have to wonder. Unless I misunderstand what you mean, that is exactly what I would like to be able to avoid. A user may not always be able to create new database instances, or may just want to avoid creating a new one for each repository. > > +gitcvs.dbprefix:: > > And it would not be dbprefix but table name prefix. All right, how does gitcvs.dbTableNamePrefix sound? > > @@ -2349,10 +2353,10 @@ sub new > > } > > > > # Construct the revision table if required > > - unless ( $self->{tables}{revision} ) > > + unless ( $self->{tables}{"$self->{dbprefix}revision"} ) > > Hmmm. If we are going to insist on having multiple tables in a single > database, can we make sure we have better chances of catching mistakes by > doing something like... > > * Identify the set of tables and indices one repository would use > (i.e. revision, revision_ix1, etc.) It did occur to me that I should abstract it a little more, I just ended up being lazy about it. A slightly cleaner version should follow this mail. -jre