Re: Providing the functionality of CVS as a library

2002-11-16 Thread Alex Taler

 Larry == Larry Jones [EMAIL PROTECTED] writes:
  Larry To: [EMAIL PROTECTED] (Alex Taler)
  Larry Subject: Re: Providing the functionality of CVS as a library
  Larry Date: Sun, 3 Nov 2002 14:01:58 -0500 (EST)

  Larry There's only one client/server protocol that's used by all the client/
  Larry server methods (pserver, ext, fork, etc.): see doc/cvsclient.*.

And happily it can be invoked as cvs server on the command
line, to support the local repository case and make development
easier.  Thanks for the pointer, it's just what I need.

The libcvs project has now been approved (thanks Derek?), so if
you're curious take a look at libcvs.cvshome.org.  I've written
some design docs for the API, and now we're working on an
implementation of the CVS client purely in Perl.

Alex

-- 
Some men can swing by their heels on the flying trapeze; some men can become
president of the republic; I can drink cognac.
   Henri Toulouse-Lautrec (as portrayed in Moulin Rouge)

PGP: 42D0 66C2 9FF8 553A 373A  B819 4C34 93BA 23DC 453B




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Providing the functionality of CVS as a library

2002-11-05 Thread Rob Helmer
Ah, completely forget - someone that I contacted on this list
before sent me the beginnings of a library written in Perl for
the cvs client/server protocol.

I just took a look at it again yesterday, it is written well, there
is a library and a sample client, the library only implements
a couple commands so far, it's enough to do checkout/status/etc.

The client assumes that you are using pserver, I don't see
any reason you couldn't have a pipe to cvs server running
through SSH though. 

The client is simple, it doesn't maintain CVS metadata dirs
or anything, prints everything ( checkouts, etc ) to STDOUT.

It would be kind of neat to have a complete Perl CVS client 
just as a proof-of-concept on the library though, I'll
take a serious look at it once I get some of my other projects
a little further along :) 

I've been thinking of replacing SandWeb's Repository::cvs 
with a better version of this library, it poses some problems
with regard to supporting UNIX accounts in the way I'd like
to, but nothing unsurmountable.

Let me know if you'd like a copy, it's Artistic license/LGPL
( like Perl ). I haven't made any changes to it yet, just
looked at it.



Thanks,
Rob


On Sun, Nov 03, 2002 at 10:31:15PM -0800, Rob Helmer wrote:
 On Mon, Nov 04, 2002 at 12:08:01AM -0500, Alex Taler wrote:
   Rob == Rob Helmer [EMAIL PROTECTED] writes:
Rob We looked at VCS::Cvs for inclusion into SandWeb, and realized the same
Rob thing, so we wrote our own abstracted Perl CVS class (
Rob SandWeb::Repository::cvs ).
  
Rob If you want to check it out, I'd reccommend getting the CVS version -
Rob http://sandweb.sf.net
  
  Thanks, I took a look at it.  It doesn't look quite like what I
  want.  I am thinking of an API in which the managed CVS files are
  individual objects which you can manipulate.  Along the same
  lines as in VCS::Cvs.  The benefit I see to this approach is
  better handling of unusual cases.  How do you handle error and
  unusual cases?


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Providing the functionality of CVS as a library

2002-11-04 Thread Martin Fuzzey
For Java the jcvs project provides both a CVS client (with UI) and a 
package implementing the CVS client/server protocol that you can use to 
build your own CVS aware applications.
http://www.jcvs.org/

I don't know if anyone has done this in other languages

Martin Fuzzey


Message: 5
Subject: Re: Providing the functionality of CVS as a library
To: [EMAIL PROTECTED] (Alex Taler)
Date: Fri, 1 Nov 2002 10:55:11 -0500 (EST)
Cc: [EMAIL PROTECTED]
From: [EMAIL PROTECTED] (Larry Jones)

Alex Taler writes:

 My incentive for this comes from my experience with writing tools
 that wrap CVS.  I found the parsing of the CVS output quite
 cumbersome, and prone to failure when I brought it to a new site.
 I know I'm not the only one who would benefit from such a
 library, so it seemed like a good idea.

That's one of the motivations for the CVS client/server protocol -- the
intent was the people should write new clients rather than trying to
wrap the existing command-line client.  Librarifying CVS would likely
require a complete re-write.

-Larry Jones




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



RE: Providing the functionality of CVS as a library

2002-11-03 Thread Alex Taler

 jlcarpenter == jlcarpenter  [EMAIL PROTECTED] writes:
  jlcarpenter To: [EMAIL PROTECTED]
  jlcarpenter Subject: RE: Providing the functionality of CVS as a library
  jlcarpenter Date: Fri, 1 Nov 2002 09:40:12 -0800

  jlcarpenter Isn't there a Java CVS client library used within jCVS?
  jlcarpenter Unfortunately for me the library is under a GPL which doesn't
  jlcarpenter let me use it within any ant tasks submitted to Jakarta.

Thanks for the tip, it looks like a very thorough CVS client
implementation.  I'm sure it will be useful to me.

It looks like the library is in fact under LGPL, so you should be
able to use it, no?

  jlcarpenter Surely there is code on CPAN which interfaces with CVS even if
  jlcarpenter it is really pushing a command line under the covers.

If there is, I couldn't find it.  There's a module called
VCS::Cvs, but it's just a skeleton, and hasn't been touched in a
year.  It is the perl interface the interests me the most at the
moment.

Alex

-- 
Touch Bowler, then choose insertion point.
-- Software at the local bowling alley.

PGP: 42D0 66C2 9FF8 553A 373A  B819 4C34 93BA 23DC 453B




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Providing the functionality of CVS as a library

2002-11-03 Thread Larry Jones
Alex Taler writes:
 
 Do you mean the pserver protocol, and not ext?  I will take a
 look at it, although I personally don't use pserver for security
 reasons.

There's only one client/server protocol that's used by all the client/
server methods (pserver, ext, fork, etc.): see doc/cvsclient.*.

-Larry Jones

It's clear I'll never have a career in sports until I learn
to suppress my survival instinct. -- Calvin


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Providing the functionality of CVS as a library

2002-11-03 Thread Rob Helmer
On Sun, Nov 03, 2002 at 11:35:20AM -0500, Alex Taler wrote:
 
 If there is, I couldn't find it.  There's a module called
 VCS::Cvs, but it's just a skeleton, and hasn't been touched in a
 year.  It is the perl interface the interests me the most at the
 moment.


Hello,


We looked at VCS::Cvs for inclusion into SandWeb, and realized
the same thing, so we wrote our own abstracted Perl CVS class
( SandWeb::Repository::cvs ).

If you want to check it out, I'd reccommend getting the CVS
version - http://sandweb.sf.net 

SandWeb itself is getting ready to enter beta, the APIs for
things like Repository.pm and cvs.pm are frozen.

It also depends on SandWeb::Shell, since that class is the
point at which everything interfaces with the Unix shell. 

I originally wrote Repository::cvs to make it's own calls
to the shell, it would be really easy to just remove the
dependency on that class and make cvs-Shell() just do
a direct call.

SandWeb::Repository is a class that lets us abstract different
version control systems from SandWeb, cvs.pm doesn't depend
on it, it just gives us a standard API ( which is almost
identical to cvs.pm's API, since we only support CVS so far :) ).



HTH,
Rob Helmer


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Providing the functionality of CVS as a library

2002-11-03 Thread Alex Taler
 Rob == Rob Helmer [EMAIL PROTECTED] writes:
  Rob We looked at VCS::Cvs for inclusion into SandWeb, and realized the same
  Rob thing, so we wrote our own abstracted Perl CVS class (
  Rob SandWeb::Repository::cvs ).

  Rob If you want to check it out, I'd reccommend getting the CVS version -
  Rob http://sandweb.sf.net

Thanks, I took a look at it.  It doesn't look quite like what I
want.  I am thinking of an API in which the managed CVS files are
individual objects which you can manipulate.  Along the same
lines as in VCS::Cvs.  The benefit I see to this approach is
better handling of unusual cases.  How do you handle error and
unusual cases?

Alex

-- 
Touch Bowler, then choose insertion point.
-- Software at the local bowling alley.

PGP: 42D0 66C2 9FF8 553A 373A  B819 4C34 93BA 23DC 453B




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Providing the functionality of CVS as a library

2002-11-03 Thread Rob Helmer
On Mon, Nov 04, 2002 at 12:08:01AM -0500, Alex Taler wrote:
  Rob == Rob Helmer [EMAIL PROTECTED] writes:
   Rob We looked at VCS::Cvs for inclusion into SandWeb, and realized the same
   Rob thing, so we wrote our own abstracted Perl CVS class (
   Rob SandWeb::Repository::cvs ).
 
   Rob If you want to check it out, I'd reccommend getting the CVS version -
   Rob http://sandweb.sf.net
 
 Thanks, I took a look at it.  It doesn't look quite like what I
 want.  I am thinking of an API in which the managed CVS files are
 individual objects which you can manipulate.  Along the same
 lines as in VCS::Cvs.  The benefit I see to this approach is
 better handling of unusual cases.  How do you handle error and
 unusual cases?


Hi Alex,


Handling managed files as objects is a pretty cool idea conceptually,
if you end up doing this let me know as I may be interested in
collaborating ( SandWeb is going to use what you see there for the
1.0 release, after that who knows? ).

Repository::cvs is really just a wrapper around the cvs command
line utility, say you create a $repository object using R:c's 
constructor, then call it's methods ( which are for the most
part one-to-one to the CVS commands ). You pass the filename
or directory you wish to work with in the constructor.

There is a seperate SandWeb::File object which we use to manupulate
files, I think the concept could be extended to SandWeb::Repository
as well.

Anyway, in the case of CVS we generally handle errors based on
the error level that the CVS binary leaves.



--
Rob


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Providing the functionality of CVS as a library

2002-11-02 Thread Alex Taler

 Larry == Larry Jones [EMAIL PROTECTED] writes:
  Larry That's one of the motivations for the CVS client/server protocol --
  Larry the intent was the people should write new clients rather than trying
  Larry to wrap the existing command-line client.  Librarifying CVS would
  Larry likely require a complete re-write.

Do you mean the pserver protocol, and not ext?  I will take a
look at it, although I personally don't use pserver for security
reasons.

I wondered if I would hear the words complete re-write.  I
thought that might be the reason this hadn't been done yet.
However, I am still committed to it.

Alex

-- 
Why would anybody shoot at a police station?
-- Assault on Precinct 13

PGP: 42D0 66C2 9FF8 553A 373A  B819 4C34 93BA 23DC 453B




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



RE: Providing the functionality of CVS as a library

2002-11-02 Thread Alex Taler

 Shankar == Shankar Unni [EMAIL PROTECTED] writes:
  Shankar Alex Taler writes:
   I'm interested in working on providing the functionality of CVS as a
   library.

  Shankar I take it you mean the _client_ side of CVS as a library? Or are you
  Shankar talking about serving up CVS functionality from an embedded server?

Yes, I mean the client side of CVS.

-- 
Why would anybody shoot at a police station?
-- Assault on Precinct 13

PGP: 42D0 66C2 9FF8 553A 373A  B819 4C34 93BA 23DC 453B




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: Providing the functionality of CVS as a library

2002-11-01 Thread Larry Jones
Alex Taler writes:
 
 My incentive for this comes from my experience with writing tools
 that wrap CVS.  I found the parsing of the CVS output quite
 cumbersome, and prone to failure when I brought it to a new site.
 I know I'm not the only one who would benefit from such a
 library, so it seemed like a good idea.

That's one of the motivations for the CVS client/server protocol -- the
intent was the people should write new clients rather than trying to
wrap the existing command-line client.  Librarifying CVS would likely
require a complete re-write.

-Larry Jones

You can never really enjoy Sundays because in the back of your
mind you know you have to go to school the next day. -- Calvin


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



RE: Providing the functionality of CVS as a library

2002-11-01 Thread Shankar Unni
Alex Taler writes:

 I'm interested in working on providing the functionality 
 of CVS as a library.  

I take it you mean the _client_ side of CVS as a library? Or are you
talking about serving up CVS functionality from an embedded server?

The first is quite useful - it would make it far more easy to wrap it in
good GUI tools (instead of the somersaults that the various GUI clients
have to go through today to parse the output).

Also, providing hooks to provide standard client-side SCC APIs (like
Microsoft's) also makes it more easy to integrate into IDEs.
Unfortunately, there isn't much of a standard for these things outside
the Micro world..

Good idea..
--
Shankar.



___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



RE: Providing the functionality of CVS as a library

2002-11-01 Thread jlcarpenter

Isn't there a Java CVS client library used within jCVS?  Unfortunately for
me the library is under a GPL which doesn't let me use it within any ant
tasks submitted to Jakarta.

The Microsofties should be able to compile a Java library into a .NET
assembly using J#.  (One might have to touch up the code here and there.)
Then any application running within the CLR or able to use wrapped .NET
code could use it regardless of language.

The non-Java Unix heads could use C++ to access the Java library.  I think
there is an ant task that claims to automate wrapping a C++ interface
around Java code and vice versa.

Surely there is code on CPAN which interfaces with CVS even if it is really
pushing a command line under the covers.  Last I heard ActiveState is
working on getting Perl to compile to the CLR.

I think there is an effort to develop an open-source implementation of the
CLR on Unix.  This might help Unix heads who aspire to be Microsofties.

James Lee Carpenter
Software Engineer
Household Technical Services
6602 Convoy Court
San Diego, CA 92111

ph: 858-609-2461
email: [EMAIL PROTECTED]


   
  
 Shankar Unni
  
 [EMAIL PROTECTED]  To:[EMAIL PROTECTED]  
  
 omcc:
  
 Sent by:   Subject: RE: Providing the 
functionality of CVS as a library 
 [EMAIL PROTECTED] 
  
 g 
  
   
  
   
  
 11/01/2002 08:41 AM   
  
   
  
   
  




Alex Taler writes:

 I'm interested in working on providing the functionality
 of CVS as a library.

I take it you mean the _client_ side of CVS as a library? Or are you
talking about serving up CVS functionality from an embedded server?

The first is quite useful - it would make it far more easy to wrap it in
good GUI tools (instead of the somersaults that the various GUI clients
have to go through today to parse the output).

Also, providing hooks to provide standard client-side SCC APIs (like
Microsoft's) also makes it more easy to integrate into IDEs.
Unfortunately, there isn't much of a standard for these things outside
the Micro world..

Good idea..
--
Shankar.



___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs







___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Providing the functionality of CVS as a library

2002-10-31 Thread Alex Taler

Hi, 

I'm interested in working on providing the functionality of CVS
as a library.  I've created a project called libcvs on
cvshome.org to host the work.  It's pending approval, so don't go
look yet.

I don't think there's anyone out there already doing, this, but
please tell me if I'm wrong.  I'm sure the idea has come up in
the past, but I couldn't find discussion of it in the mailing
list archives.  Is there a reason that nothing like this is being
done?

My incentive for this comes from my experience with writing tools
that wrap CVS.  I found the parsing of the CVS output quite
cumbersome, and prone to failure when I brought it to a new site.
I know I'm not the only one who would benefit from such a
library, so it seemed like a good idea.

Of course there are lots of issues to be worked out, such as
source licensing, using the existing CVS source, accessing remote
repositories, and libraries in multiple languages.  I look
forward to working out all of these problems.

Alex

-- 
Why would anybody shoot at a police station?
-- Assault on Precinct 13

PGP: 42D0 66C2 9FF8 553A 373A  B819 4C34 93BA 23DC 453B




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs