[M3devel] (Offtopic) Some comments on SCM tools, was: Re: M3 concerns

hendrik at topoi.pooq.com hendrik at topoi.pooq.com
Thu Jan 10 15:28:12 CET 2008


On Thu, Jan 10, 2008 at 12:20:20PM +0100, Olaf Wagner wrote:
> Quoting hendrik at topoi.pooq.com:
> >But if you have this experience,  it would be useful to see a rundown
> >of the advantages and disadvantages of each.  I've seen a table of
> >features against version control systems, but it doesn't give any feel
> >for what it's like to use them.
> >
> >Such an essay would be useful for those involved in other projects.  It
> >probably won't help Modula 3 itself.
> 
> That would easily become an open-ended task :-)

I was once asked to compare several programming languages with the 
intent of advising researchers in an institute which ones to use.  A 
year into the project, I was sorry I ever started it.  I learned a lot 
about CPU-time clocks running backward.  I learned a lot about how 
different languages ended up with differences in floating-point 
behaviour, even though they were all running on the same hardware with 
one same set of floating-point instructions.

> It is not easy to
> compare different complex tools like SCM systems, which interact
> in various degrees with process control, workflow management, problem
> management, project management, general policies...

Which is why a list of features really isn't enough.  What's needed is 
poeple with hands-on experience with several.  Which is hard to get.

> 
> We've tried to provide feature-oriented comparison lists some years
> ago, but even this needs too much efforts and is too fast out-of-date.
> 
> There are some aspects that may currently be helpful as criterions
> though. I'd like to mention some of them
> 
>  o Traditionally, version control tools were centralized server systems.
>    There is one central repository (which can in advanced setups be
>    replicated to several sites for many systems. Replicas may even be
>    partly writable. In case of replication there is one `logical' central
>    repository which is physically distributed.). Systems in this group
>    are CVS, ClearCase, PVCS, AccuRev, Perforce, Subversion, and many
>    others.
>    In recent years, peer-to-peer systems have become popular, because
>    they correspond better to certain aspects of open software projects
>    and are inherently distributed. There is no distinction between
>    workspace and repository, and each workspace holds a partial or
>    complete change history.
>    Such systems are BitKeeper, git, Darcs, and others. As far as I know,
>    these systems are not very popular in the commercial world (yet?).
> 
>  o An orthogonal criterion is the range of functionality that is addressed
>    with the solution. Simple systems like CVS and Perforce do just version
>    control and offer some hooks for further integration.
>    On the other side are process-oriented systems like PVCS Dimensions or a
>    complete ClearCase/ClearQuest setup for RUP. These systems are
>    rather based on change management und workflow than on developer
>    needs. Basic abstractions are baselines, changesets, tasks, projects,
>    activities, functional roles.
>    Of course, some tools are somewhere in between these extremes, like
>    AccuRev, which supports kinds of long-running transactions for
>    everything, called `streams'. (This one's very nice IMO.)
> 
>  o Then there are the costs of the use of the systems. There are always
>    costs, even for open source solutions. You have to consider
> 
>     - server costs (hardware, energy, OS, database, licences, networks)
>     - administration and maintenance (servers and user setup)
>     - user license costs (from 0 to several thousand dollars per year)
>     - use overhead (depending on tool usability and process)
>     - instruction and training
> 
>    Again there are systems that are rather lightweight in this respect
>    (like CVS and Perforce) and some tending to be more heavyweight
>    (like ClearCase and PVCS).
> 
>  o The `end user experience' corresponds very much to the basic
>    concepts needed in everyday use. File based ci/co is very
>    simple, development lines are more or less a must have,
>    change sets and baselines (like in DCVS, AccuRev or RUP) are very
>    nice; diffs and merges seem to be too complex for many users
>    (but are of course needed); conflict avoidance vs. conflict
>    resolution (locking or optimistic approach) is often a religiously
>    discussed topic.
>    The other important issue here is the IDE integration (at least
>    for developers).
> 
> These are only some randomly picked topics that would need to be
> addressed in a useful tool comparison.
> 
> There are very few situations in which you can evaluate and choose
> the best tool for your purpose; most of the time, you have to adapt
> and improve existing setups, as everything else would be too
> expensive and disrupting. Our company has supported several migration
> projects recently though, so it's not impossible to change ;-)
> 
> As for CM3, I'm still of the opinion that there is no need to
> change the existing CVS infrastructure.
> 
> >Or might you know of such an essay elsewhere?
> 
> Well, the more interesting field studies and evaluations are not
> free; there are quite a lot of interesting articles though.
> I haven't any links here right now; CM crossroads or a Google
> search on `configuration management' should be a good starting point.

Thank you for this very brief review.  I'm really not wanting you to 
take a year off from more urgent work!

> 
> Olaf
> -- 
> Olaf Wagner -- elego Software Solutions GmbH
>                Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany
> phone: +49 30 23 45 86 96  mobile: +49 177 2345 869  fax: +49 30 23 45 86 95
>    http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz: Berlin
> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194
> 



More information about the M3devel mailing list