favorite configuration management tool

My team has been happily using CVS for some time now, but our director is fishing for a centralize, company-wide configuration management tool, and cvs isn't expensive enough. He's leaning towards ClearCase, which I feel is a waste of money, and will be tedious for our team to use. I've vocalized my reservations, but he wants to hear alternatives...

So, what's the best CM tool out there? It needs to scale to multiple projects, hundreds of developers, needs to have fine access control, and should have hooks to allow integration to bug tracking tools (most likely ClearQuest). It must manage file/directory renaming, moving, copying, and should support binary diffs (did you know ClearCase doesn't do this?). It should be efficient with narrow pipes to the repository. And it must support concurrent access, no locked editing.

Any suggestions? I know that subversion actually meets all these requirements, but I'm sure management would be even edgier about this than cvs. So unfortunately, that's out.

11 comments

There are a billion, of course, but look into Perforce: http://www.perforce.com. I've been using it for personal development and at various companies I've worked with for years.

I don't know about ClearQuest support, and their job tracking may not be what you're looking for, but in terms of efficiency and large group support I'm very, very, very happy.

0

mks has a suite of products that can do most of that.

0


"Russell Egan" <russegan@email.com> wrote in message
news:19294959.1075493793505.JavaMail.itn@is.intellij.net...

My team has been happily using CVS for some time now, but our director is

fishing for a centralize, company-wide configuration management tool, and
cvs isn't expensive enough. He's leaning towards ClearCase, which I feel is
a waste of money, and will be tedious for our team to use. I've vocalized
my reservations, but he wants to hear alternatives...
>

So, what's the best CM tool out there? It needs to scale to multiple

projects, hundreds of developers, needs to have fine access control, and
should have hooks to allow integration to bug tracking tools (most likely
ClearQuest). It must manage file/directory renaming, moving, copying, and
should support binary diffs (did you know ClearCase doesn't do this?). It
should be efficient with narrow pipes to the repository. And it must
support concurrent access, no locked editing.

Looked at ClearCase, Starteam and Perforce two years ago. Chose Starteam
though I like Perforce a lot: small, multiplatform, fast. But a little
cumbersome to use and its tasks/topics/CRs are not the best. Starteam is
fairly nice, has Windows and web interface (not sure about other clients).
Not sure about binary diffs. Lock/no lock checking out supported, but its
merge tool sucks. Built-in bug tracking and tasks.

I've tried some other CM, don't remember name, it could fine-lock on the
method level, it knew file structure of different source code types. Neat
idea, but it was too new, buggy and kinda ugly. Maybe they improved it now.


0

whatever you do...don't use continuus. We lost entire projects because it would, somewhat randomly, delete all the source code it had. I guess it just felt like it needed a fresh start every now and then :)

0

Actually Clearcase is not bad at all. I used it for several years on my previous
job and while it certanly has steepier than the others learning curve it also
offers a lot of features hard to find in any other tool. It was a big company
with thousands developers all around the world and everybody was very happy with
clearcase. There are a lot of pros and AFAICR only three cons: 1. steep learning
curve, 2. you'll need some dedicated and I would say certified in it person(s)
to administer the thing, 3. it's expensive. Besides that I would say that
clearcase is very very good.

On my present job we used starteam first and then switched to perforce. Nothing
to say about Starteam, I used it just a couple of weeks, but you can judge from
the fact that we finally selected Perforce over Starteam.

Perforce in overall is good, although there are some things which I would like
to see there implemented and some things to be done differently.

The conclusion is that I used Clearcase, Starteam, Perforce, then I used CVS and
Subversion on my opensource projects, some time ago I used VSS, so far Clearcase
is the best VCS I used :)

--
Dmitry Skavish
JetBrains, Inc. / "Develop with pleasure!"
email: skavish@jetbrains.com | cell: 508.789.6590 | office: 508.405.1093

0

My favorite comment is I've found in Jacques Morel's clearcase plugin code : "to make clearcase suck less".
Well, that's exactly the feeling we have here about clearcase. As already said, you need to hire a person to do CC administration ( I still remember those funny moments when we had to wait till our administrator accross the ocean wake up). Here an link with comparation of vcs tools...maybe helpfull if your boss changes his mind:

http://better-scm.berlios.de/comparison/comparison.html

0

On Fri, 30 Jan 2004 20:16:33 +0000, Russell Egan wrote:

My team has been happily using CVS for some time now, but our director is
fishing for a centralize, company-wide configuration management tool, and
cvs isn't expensive enough. He's leaning towards ClearCase, which I feel
is a waste of money, and will be tedious for our team to use. I've
vocalized my reservations, but he wants to hear alternatives...


The more I use subversion the more I like it, I've been using it at home
since the very early days and it just gets better and better.

0

The big issues I had with CC are:
1. binary/large files are not handled intelligently. If you're keeping a 300mb zip file in source control, every check in will put another 300mb copy into the repository. Creates need for expensive server platform, and increases bandwidth requirements. But maybe this is the norm.
2. Don't see the benefit of the "dynamic view". Why do I want to check out each file individually before I can edit it? Why do I want my files updating all the time, rather than controlling when to bring my image up to date? Why do I want to access my whole working directory over a network connection? The feature just seems like all cost for no benefit.
3. When using a snapshot view, commits are not atomic? This is what the sales engineer said, and I almost don't believe him. I can't believe a product which costs this much doesn't do atomic commits.
4. What are the features CC has that others do not? Perhaps the sale engineer wasn't very good, but it just didn't seem like CC really did anything unique. Dynamic views and the Bill Of Materials were the only things he could come up with, niether of which seem to have a great deal of utility to me.
5. I heard more bad press about CC than good press. The stories I usually hear indicate the product is too hard to use, and basically just slows developers down. Features are nice (though see #4), but if they don't provide much benefit, and cost developer-time, then they probably aren't worth it.

0

The big issues I had with CC are:
1. binary/large files are not handled intelligently. If you're keeping a 300mb zip file in source control, every check in will put another 300mb copy into the repository. Creates need for expensive server platform, and increases bandwidth requirements. But maybe this is the norm.


Can't comment on this, because administering cc was not exactly my problem, luckily :)

2. Don't see the benefit of the "dynamic view".


It usually depends on the person. I recall that some prefered dynamic views, while the
others static (snapshot) one. The benefit of dynamic view is that you always have code
which is up to date and see (and can resolve) all the problems right away. Although I
usually used snapshot views, but again as I said it depends on the person.

Why do I want to check out each file individually before I can edit it?


It's a good practice in any VCS. BTW most of VCS work this way (except CVS, subversion and
some others). For example Perforce works like this also.

Why do I want my files updating all the time, rather than controlling when to bring my image up to date?


As I said it's up to you. You have both options.

Why do I want to access my whole working directory over a network connection?


My understanding is that it's cached in some way. CC supports replication, so if you use
dynamic views over an ocean and it's slow you can always setup some server close to you
and replicate it. :)
And again what I am talking about here is that IMHO CC is very nice to use, not to
administer it or it's cost.

The feature just seems like all cost for no benefit.

3. When using a snapshot view, commits are not atomic?
This is what the sales engineer said, and I almost don't believe him.
I can't believe a product which costs this much doesn't do atomic commits.


This is not true, commits are always atomic in any view.

4. What are the features CC has that others do not?
Perhaps the sale engineer wasn't very good, but it just didn't seem like CC really did anything unique.
Dynamic views and the Bill Of Materials were the only things he could come up with,
niether of which seem to have a great deal of utility to me.


Hard to list them all, but I try what I remember.

1. very good graphical viewer/editor of branches and versions. basically you see the
versions tree graphically and can do everything there, merge, compare, create new
branches, put labels etc. it's very very convinient! especially if the structure of your
project is very complex and there are a lot of groups working on it, you have special
integration unit which is in charge of merging all the changes into integration branch,
you also have several versions of your product which you need to maintain for your
customers. all that stuff is very easy to manage in cc. I am yet to see anything like that
in other VCS.

2. excelent merge tool. a lot of the conflicts it resolves automatically.

3. you can have several views of your project simultaneously. for example you can have
several versions of your product or different builds etc. It comes in handy when you need
to fix bugs in previous versions or need to make some changes in several versions stuff
like this. this is especially useful when you have profiles stored on server for every
build/version/service pack, so switching between versions is a breeze! and btw dynamic
views are very useful here, because you don't need to to bring the whole project into view
just to fix some stuff (this is true of course if you don't have to recompile the whole
project, basically you'll need to have most of the packages precompiled and accesible from
CC as well).

4. cc explorer gives you all the information about your files and you can always see which
files are missing, new files, modified files etc. for example in perforce if you say
deleted some files perforce won't tell you that until you run a time consuming "check for
consistency" command. you don't have this problem in cc. basically in cc it's very easy to
see and control the state of your view.

I think there is some other stuff and of course some cons as well :), I just don't
remember anything now.

5. I heard more bad press about CC than good press.
The stories I usually hear indicate the product is too hard to use, and basically just slows developers down.
Features are nice (though see #4), but if they don't provide much benefit, and cost developer-time, then they probably aren't worth it.


As I said it has steep learning curve comparing to other VCS, but if you get it it's
probably worth the time. And again this is my opinion as an user. I have no idea how hard
it is to manage the thing, how much it will eventually cost you and things like that. I
have a feeling that it's probably not worth it in a company with less than 100-200
developers, but this is just my speculations.

--
Dmitry Skavish
JetBrains, Inc. / "Develop with pleasure!"
email: skavish@jetbrains.com | cell: 508.789.6590 | office: 508.405.1093

0

We just had the telelogic salespeople in here today, and I have to admit, they gave a persuasive presentation. How long ago did you use it? Was the only problem you had stability? Thanks for the input.

0

I used in in from 1998 - 1999. The problem wasn't that the client would crash or anything like that. People around us reported checking files in and the entire code base being deleted from the server. Following the advice of other teams we setup another cm product and then only moved the files into continuus when they were ready for release. Doing this reduced our problems because we would check all the files out apply our changes and then check them all back in about every 3 months or so. It may be a better product now I don't really know.

0

Please sign in to leave a comment.