[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.python

Re: CVS access with Python

Steve Holden

2/7/2008 4:03:00 PM

Ravi Kumar wrote:
> I have to design a Web-based CVS client. I could not find any module,
> cvs-binding in python.
>
> I have investigated all sort of Web Interface, including Sandweb, and
> ViewCVS etc.
> But these provide Read-only access and features. I need to provide
> almost all sort of basic features a developer frequently need in it.
> So please guide me.
> I found javacvs project in Netbeans project repository which seems a
> nice library, but since I am not a java programmer, this fails to me.
>
> Other problem is its implementation. Say, there is a repository of some
> projects with many modules. Now, when one developer wants to checkout, I
> can get the revision Sources to Web-server temporary sandbox, and create
> an archive (tar.gz/zip) and put that for downloading by the user. Since
> there is many-to-many relation between projects and developers, it will
> consume a lot of disk space on Web-server, creating 'n' copies of a
> single project for 'n' users, and assume all developers are checking out
> all sources. God knows.
> So is there any good implementation for such situation.
>
If I can be honest, the whole scheme sound completely wrong-headed to
me. Is somebody paying you to do this?

The whole point of CVS is to allow clients to maintain a local copy of
the repository. Hence a naive implementation of a web CVS client will
have to do the same thing for each user.

It *might* be possible to use a copy-on-write scheme such as Sun's old
Translucent File System (sorry, showing my age here), but this will give
hard problems when the repository changes shape, for example.

Suppose a user has her own CVS client repository on the web, how is she
supposed to edit and compile the files? Or is this not a programming
application?

regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC http://www.hold...

1 Answer

A.T.Hofkamp

2/8/2008 8:01:00 AM

0

On 2008-02-07, Steve Holden <steve@holdenweb.com> wrote:
> Ravi Kumar wrote:
>> I have to design a Web-based CVS client. I could not find any module,
>> cvs-binding in python.

There isn't any afaik. CVS was never designed with scripting in mind. You'll
have to issue the command, then parse the textual ouput.

Some time ago, a new CVS clone was started with the BSD OSes. You may want to
check that out.

>> an archive (tar.gz/zip) and put that for downloading by the user. Since
>> there is many-to-many relation between projects and developers, it will
>> consume a lot of disk space on Web-server, creating 'n' copies of a
>> single project for 'n' users, and assume all developers are checking out
>> all sources. God knows.

Euh, why?

You have a CVS repository sitting around the corner, just check out what you
need when you need it (and throw it away afterwards, it is reproducible). If
you need to keep special versions for each dev (in each project maybe), set up
a tagging system, and commit the new versions tagged to the repository.

>> So is there any good implementation for such situation.

Yes, it is called Subversion (SVN, http://subversion.t...), which does
all that CVS does (in a much much nicer way), and more, including networking
over the HTTP protocol (securely, if you want).

It works out of the box, is used with thousands of projects, and will save you
and others hundreds of hours time.
Also, there are several graphical clients for it (both Windows and Linux, and
quite likely Mac), and there is a cvs2svn tool.

> Suppose a user has her own CVS client repository on the web, how is she
> supposed to edit and compile the files? Or is this not a programming
> application?

Ravi Kumar: Another problem, how are you going to deal with merge conflicts? I
don't see a useful way of resolving those through a web interface.

Maybe a webinterface is not the answer to your problem?

Sincerely,
Albert