Re: Thoughts on revision control systems

Martin Bayer <[email protected]>
Newsgroups gmane.comp.video.gephex.devel
Message-ID <[email protected]>
Georg Seidel wrote:
> Here is a link to an article that compares some revision control systems:
> http://seppuku.editthispage.com/2003/07/30
> 
> The article is not very detailed but it's a good starting point.
> I didn't know some of the mentioned tools before (darcs for example, 
> which sounds really interesting ["based ... on operators of the Quantum 
> Mechanics", "written in Haskell", "token patches"]).
> 
> One thing I do not understand is what the author means with the "CVS 
> interop" of arch - probably it's possible to convert CVS repositories to 
> arch archives?

There are two way of interop between cvs and arch:

1. The old cvs repository is converted once to an initial arch 
repository. It is very difficult to extract good changesets from the cvs 
history, but there are some scripts around that try to do the job.

2. Regular updated between an arch and a cvs repository. For convenience 
of non arch users there is sometimes the need to commit all the changes 
to the arch repository also to a cvs repository. This is like the linux 
bitkeeper repository gateways to cvs and subversion.

If think both aren't that important for us. The new GePhex will be a 
rewrite in major parts so we don't have much historic knowledge to 
preserve. If the new revision control system is superior there is no big 
  need to maintain a legacy gateway. Providing daily snapshots on the 
webserver and sending autogenerated diffs of all commited changesets to 
a mailinglists should be enough.

> I suggest that we have a look at some of the more interesting 
> alternatives (darcs, aegis and arch of course) before we decide which 
> tool to use.
> 
> So far, I think arch is quite good, I even managed to display the diffs 
> between to old revisions (or rather patch levels in arch terminology) by 
> now ;).
> The main features that seem to beat CVS and Subversion are, in my 
> opinion, the possibility to work on an offline repository (with history 
> sensitive merging later on) and the so called "cherrypicking" of 
> patches, that is the possibility to decide which patches go into one 
> specific distribution of the software. (I didn't try that stuff yet).

This seems to me like a great feature.

> I would like to propose some important features that can be used to help 
> with the decision for the right tool (provided it supports all the basic 
> features that CVS has):
> 
>   - offline work possible

Subversions(+-) offline facilities are good for shortterm offline work. 
But for developers with non commit status this isn't a solution.

In my opinion archs(+) possibilitiy that every developer can setup an 
own repository and the development steps can at some point be replayed 
to the main repository is quite powerful. But i don't know whether this 
is really important for us.

>   - anonymous access easy to set up and use

The cvs(-) anonymous pserver, rsh or ssh way is crap from the 
administrators view. I think it is no option to add new users or new 
open services just to allow read only access to the repository. The Http 
is a quite good protocol for theses things. For arch(+) we just need a 
plain http server and for subversion(+-) there is also need for the 
webdav module of apache 2.

>   - commit access easy to set up and use

Cvs(+) and subversion(+-) uses a ssh connection and some binary tools on 
the repository server. Arch just needs a sftp connection.(+)

>   - client available for unix and windows

cvs(+) yes , subversion(+- in cygwin)

with arch and cygwin there are some problems:
http://mail.gnu.org/archive/html/gnu-arch-users/2003-09/msg01107.html
We have to check the cygwin port first.

Martin
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.