[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Client CVS implementations ( was : Re: XML interface to cvs )

From: Rob Helmer
Subject: Client CVS implementations ( was : Re: XML interface to cvs )
Date: Tue, 26 Mar 2002 13:03:52 -0800
User-agent: Mutt/1.2.5i

On Tue, Mar 26, 2002 at 02:42:57PM -0500, Dan Langille wrote:
> On Tue, 26 Mar 2002 08:45:40 -0800, Rob Helmer <address@hidden> wrote:
> > Hi Dan,
> > 
> > What kind of interface are you looking for?
> A programmatic one.  At present, I use cvsweb (e.g.
> to extract what is needed via http.

Hmm, interesting. It doesn't seem that there are very many client 
implementations for CVS besides the command-line one, which obviously
doesn't take XML as input or output in XML ( I assume this is what you
want? ).

You could write a translator ( e.g., wrapper ) for the CVS binary
I suppose, also there is jCVS ( ), they have
implemented the client protocol in Java ( as a library, I believe ).

I'm going to ask a couple general questions to the list too, if you
don't mind :

Speaking of which, I have been thinking about looking at writing
a client implementation of CVS in OO Perl for SandWeb ( ).

Does anyone know of any implementations of the CVS client part of
the client/server protocol in Perl, Python, C ( besides the CVS binary :)
Ruby, etc. ? Java is nice, but since the core application is not
running in a VM and it's mostly stateless between executions, I
don't see an advantage to using the Java implementation.

AFAIK, the "official" CVS doesn't have the various functions split 
into a library, it's all implemented in the binary, right? ( I've browsed
the source, I obviously haven't read it since I'm asking this ).

( if anyone is curious, it's a PITA to call the CVS binary from a
  CGI, and the security implications are a nightmare. SSH won't
  run without a real TTY, for instance. A CVS implementation inside
  the CGI would be preferable, and I'd be willing to start with
  someone else's work if there's anything out there ).

All the implementations I've seen ( including SandWeb's ) just call
the CVS binary.

> Basically, I'd like to be able to traverse the tree using XML..  Here is
> some background information which might be useful.  The following
> information is slanted towards the FreeBSD operating system and its
> community, but the underlying design is OS independent.
> [1] has been running for about 2 years.  During 
> that period I've been working [no, not full time] on the next generation 
> of FP (and I've been calling that FP2).  To the end user, the differences 
> between FP1 and FP2 is minimal.  There are some new features [2] and minor 
> face lifts, but for the most part, it's same-old-same-old.
> The basic change has been the underlying database structure.  It's now 
> PostgreSQL and was mySQL.  The main reason for the change was stored 
> procedures and triggers [3] which allowed for a recursive design.  This 
> new structure will allow me to do for the whole source tree what FP does 
> for the ports tree.  This new project is called FreshSource [4].  With FS, 
> you can place any file or  directory on your watch list; in FP, you can 
> only put a port on your watch list [which makes sense; it's only for the 
> Ports tree].
> FreshPorts was designed for the FreeBSD ports tree, but the goal is to 
> allow other port trees to use it as well.  With FP2, we have moved to XML 
> as the primary input.  Each cvs-all message is converted to XML and then 
> processed by FP2.  This will greatly simplify the inclusion of other port 
> trees.
> The FP2 database was populated by migrating data from FP1.  However, the 
> ideal population method would be directly from CVS, hence the query about 
> an XML interface to CVS.  It would also allow FP2 to query any CVS 
> repository and populate itself.  This feature would probably have a bigger 
> effect on FreshSource than FreshPorts, but the capability would useful for 
> both.
> [1] - The basic purpose of FP is a FreshMeat website but for the FreeBSD
> Ports tree.for ports.  As port tree changes come out, FP captures the
> information via the cvs-all mailing  list. and stores the details in a
> database. A registered user can create a watch list containing the ports
> they care about.
> [2] - the biggest new feature is the ability to upload your pkg_info 
> output and add that to your watch list.
> [3] - some will point out that mySQL has this now.  Sorry, it didn't when 
> I started FP2.
> [4] -
> > You can generate CVS changelogs in XML format with this tool :
> >
> Thanks.  I didn't know about that.
> _______________________________________________
> Info-cvs mailing list
> address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]