Bob Miller <kbob@jogger-egg.com> writes:
> Two strikes against parsing "cvs log" output:
> 
> 	1. doesn't handle the Attic.
Oh yeah, I keep forgetting about that.  Good point!
> 	2. potential ambiguity if a log message's contents look like a
> 	   log message delimiter.
Once a million years, but yeah, that's true.
> One strike against parsing RCS files directly:
> 
> 	1. can't access remote CVS repository.
This is for converting a repository, so that's not so important.
Presumably, one already has local access to it.
> No, that makes it easier.  I was going to define a serial
> representation of the info I collect out of CVS and write a program to
> read that rep. and call libsvn_fs routines.  If the serial format is
> already defined, then that's one less step to do.
> 
> Does a program exist to read vdelta XML?
You don't have worry about reading the XML, I think -- that's what
we're working with right now, so you should get it "for free" by the
time you're ready.
> BTW, here's my status.  cvs2svn.pl now can read one RCS file and build
> the correct data structure.  I've written the directory tree walker as
> a separate program, and I need to integrate it into cvs2svn.pl, then
> it's time to check it all in.
Congrats!
> I figure my progress will basically stop for a couple of days while I
> figure out how to actually USE cvs to check files in, at the same time
> I figure out how to bludgeon automake et al into cooperation.
   cd working_copy/foo/bar
   cvs add cvs2svn.pl
   cvs ci -m "Initial checkin." cvs2svn.pl
> How close is it to the DTD that Branko posted the other day?  His
> looked like this.  (I think you missed it; it was in an attachment.)
Uh, I don't know.  I'll have to read this over more carefully tomorrow
(I think I stashed Branko's original message for later digestion
too).
I want to write up an English description of the format (an annotated
XML tree delta, probably), as well as have a DTD.
> 	<?xml version="1.0" encoding="UTF-8"?>
> 	<!-- XML DTD for Subversion's delta packages. -->
> 	<!ELEMENT delta-pkg (tree-delta, text-delta*)>
> 
> 	<!-- Delta types. -->
> 	<!ELEMENT prop-delta (set | delete)+>
> 	<!ELEMENT text-delta (#PCDATA)>
> 	<!ATTLIST text-delta
> 	  id CDATA #IMPLIED
> 	>
> 	<!ELEMENT text-delta-ref EMPTY>
> 	<!ATTLIST text-delta-ref
> 	  id CDATA #REQUIRED
> 	>
> 	<!ELEMENT tree-delta (add | delete | replace)+>
> 
> 	<!-- Delta instructions. -->
> 	<!ELEMENT add (dir | file)>
> 	<!ATTLIST add
> 	  name CDATA #REQUIRED
> 	>
> 	<!ELEMENT delete EMPTY>
> 	<!ATTLIST delete
> 	  name CDATA #REQUIRED
> 	>
> 	<!ELEMENT replace (dir | file)>
> 	<!ATTLIST replace
> 	  name CDATA #REQUIRED
> 	>
> 	<!ELEMENT set (#PCDATA)>
> 	<!ATTLIST set
> 	  name CDATA #REQUIRED
> 	>
> 
> 	<!-- Delta targets. -->
> 	<!ELEMENT dir ((prop-delta, tree-delta?) | (tree-delta, prop-delta?))?>
> 	<!ATTLIST dir
> 	  ancestor CDATA #IMPLIED
> 	  ver CDATA #IMPLIED
> 	>
> 	<!ELEMENT file ((prop-delta, (text-delta | text-delta-ref)?) |
> 			((text-delta | text-delta-ref), prop-delta?))?>
> 	<!ATTLIST file
> 	  ancestor CDATA #IMPLIED
> 	  ver CDATA #IMPLIED
> 	>
Received on Sat Oct 21 14:36:09 2006