Jason Pyeron <jpyeron@stripped> wrote on 08/16/2005 04:17:15 PM:
> On Tue, 16 Aug 2005 SGreen@stripped wrote:
> > After following your link, I am sure that some RCS systems that use
> > as a backend *may* use UDFs as part of their persistence logic, but
> > would be specific to the RCS product you are curious about. There
> > any "generic" UDFs that will apply to all verson contol front-ends.
> > the one in the link use any UDFs? I couldn't tell from what I read and
> > be perfectly honest, I couldn't figure out from the reading that RCS
> > actually used MySQL at all.
> > Is this what you wanted to know or have I still missed something vital
> > the question? It's been one of those days for me.
> > Jason Pyeron <jpyeron@stripped> wrote on 08/16/2005 02:15:34 PM:
> >> http://www.cs.purdue.edu/homes/trinkle/RCS/
> RCS does not use MySQL or any other SQL engine.
> I am looking to use a SQL backend for RCS.
> RCS is a specific tool unlike source control management (SCM), it is a
> text file database. There are no SQL based RCS implimentations that I
> of, that was why I asked in the first place.
> A RCS file is comprised of:
> meta data bout the state of the file
> current source
> 0..N reverse deltas from current source
> meta data about the various revisions represented,
> including who, when, why.
> head 1.2;
> locks; strict;
> comment @# @;
> date 2005.07.31.20.05.02; author jpyeron; state Exp;
> next 1.1;
> date 2005.07.07.05.20.31; author jpyeron; state Exp;
> next ;
> @my comment about this
> version is a BLOB TEXT
> delimited by the (at)s
> @Here it the contents of my file
> it is many lines long
> line 3
> line 4
> line 5
> line 6
> line 7
> line 8
> line 9 then terminated by the (at)
> @Initial version
> @d9 1
> a9 1
> line 9 original version
Now... don't be so hasty. MS SQL has a form of RCS you can use to check in
and check out stored procedures and other design elements using Visual
Source Safe (VSS). VSS acutally uses extended stored procedures (the
mutant cousins of UDFs) to perform the locking and unlocking of various
database elements. I think this might count as one version of a
database-based RCS (even though I think the deltas are stored elsewhere as
The metadata headers you describe should be easily convertable to database
fields and the actual delta data could either be stored in a blob (one
blob per set of changes) or separately listed in their own table (one set
of delta rows per set of changes).
Doing an RCS with a database is not complex to design but implementaion
may be slower than you like just due to the overhead of running a SQL
query (or mulitple queries) vs. the speed of directly parsing local text
A future optimization may be for you to use the HANDLER interface with
MyISAM tables in order to quickly retrieve your "delta blobs". Just
something to think about.
Unimin Corporation - Spruce Pine