Re: [sorta off topic] Re: rcs udf for MySQL

2005-08-16 Thread SGreen
Jason Pyeron [EMAIL PROTECTED] wrote on 08/16/2005 04:17:15 PM:

 On Tue, 16 Aug 2005 [EMAIL PROTECTED] wrote:
 
  After following your link, I am sure that some RCS systems that use 
MySQL
  as a backend *may* use UDFs as part of their persistence logic, but 
those
  would be specific to the RCS product you are curious about. There 
aren't
  any generic UDFs that will apply to all verson contol front-ends. 
Does
  the one in the link use any UDFs? I couldn't tell from what I read and 
to
  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 
to
  the question? It's been one of those days for me.
 
  Jason Pyeron [EMAIL PROTECTED] 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 
know 
 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.
 
 ex:
 
 head1.2;
 access;
 symbols;
 locks; strict;
 comment @# @;
 
 
 1.2
 date2005.07.31.20.05.02;author jpyeron; state Exp;
 branches;
 next1.1;
 
 1.1
 date2005.07.07.05.20.31;author jpyeron; state Exp;
 branches;
 next;
 
 desc
 @@
 
 
 1.2
 log
 @my comment about this
 version is a BLOB TEXT
 delimited by the (at)s
 @
 text
 @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)
 @
 
 
 1.1
 log
 @Initial version
 @
 text
 @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 
text).

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 
files. 

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.

Shawn Green
Database Administrator
Unimin Corporation - Spruce Pine



Re: [sorta off topic] Re: rcs udf for MySQL

2005-08-16 Thread Jason Pyeron

On Tue, 16 Aug 2005 [EMAIL PROTECTED] wrote:


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
text).


I was looking for RCS, I am looking to retool our CVS repository.



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).


Started on this a few hours ago. Paused to look at Subversion, they use 
Berkley DB.





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
files.


It would be a lot faster, since you could do the delta row set collation 
faster, if stored properly. See page 8 (section 3.2) of RCS A System for 
Version Control by Walter F. Tichy 1991.




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.


Using Innodb, for transactions.


-jason


--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-   -
- Jason Pyeron  PD Inc. http://www.pdinc.us -
- Partner  Sr. Manager 7 West 24th Street #100 -
- +1 (443) 921-0381 Baltimore, Maryland 21218   -
-   -
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

This message is for the designated recipient only and may contain 
privileged, proprietary, or otherwise private information. If you 
have received it in error, purge the message from your system and 
notify the sender immediately.  Any other use of the email by you 
is prohibited.


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]