[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