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

Olaf Wagner wagner at elegosoft.com
Thu Jan 10 12:20:20 CET 2008


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 :-) 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...

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.

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