[cvsnt] Ann: XML schema for cvs log output
Bernhard Weichel
from-support.cvsnt at b-weichel.7to.de
Tue Apr 15 19:39:03 BST 2003
Tony Hoyle wrote:
> On Tue, 15 Apr 2003 18:11:42 +0200, "Bernhard Weichel"
> <from-support.cvsnt at b-weichel.7to.de> wrote:
>
>
>> One of the major problems is the extraction of the descriptions.
>> So the production rules below will fail if a user comment starts with
>> "--" or with "==".
>
> ..shoudn't be a problem. There's always at least 1 line of commend
> followed by a line of '-------' which is fixed length (30 characters
> IIRC). The last line of the log is a line of '===' which is also
> fixed length (78 I think). If your parser is doing a bit of lookahead
> it should be able to make sure that the line of '---' is followed by
> a 'revision ' line. It's still possible to fool it, but you'd have
> to be trying to deliberately break it in that case.
>
This is my problem - the builtin parse engine in MetaMorphosis supports RR
grammars
> If you know any python look at how ViewCVS does this - it parses the
> log output (from RCS, but they're basically the same) and puts it in
> to local structures. Mostly it just uses PCRE for this.
>
> Really you want to parse to a tag per line as in:
>
> <Log RcsFile="f:/data/projects/cvs/develop/test2.txt,v"
> WorkingFile="test2.txt" Head="1.57" Branch="" Locks="Strict"
> DefaultKopt="kv" TotalRevisions="66" SelectedRevisions="66"
> Description="">
> <AccessList />
> <SymbolicNames>
> <Tag Name="r_7431_Build_13" Revision="1.33" />
> </SymbolicNames>
> <LogRevision Revision="1.33.8.1" Date="2003/04/03 16:41:58"
> Author="tmh" State="Exp" Lines="+1 -0"
> Kopt="kv" Commitid="1f63e8c66ad0000" >
> Test file
> </LogRevision>
> </Log>
>
This looks much better, I'll try to achieve this. The builtin parse engin in
MetaMorphosis supports attributes but I have never used it so far.
> Of course 'log' is the easy one... The output from 'cvs commit' can
> be a lot more varied - for that you'd really want to be taking the
> client/server protocol so you can get the entry data as it is
> generated.
Is there any documentation available for the server protocol?
Can I run CVSNT on my local box in server mode and still use a remote CVS
repository:
[myapp]---[cvsnt]--------.... lan
....-------[cvsserver]---[cvs-repository]
Bernhard
>
> Tony
More information about the cvsnt
mailing list