Fog Creek Software
Discussion Board

Source Control - Is CVS the best?

The only source control I have used is CVS. I was wondering if there are any other systems out there that can be better.

I like CVS - but I am not sure if there are other methodologies that can better fit with our team.

In our development group there are 16 developers plus BS and PM.

Our development environment is in a Win platform - the CVS is on a Debian Linux and our Production platform is Solaris.

I use TotoiseCVS for the CVS client.

Ram Dass
Tuesday, January 13, 2004

What don't you like about CVS?

Tuesday, January 13, 2004

Nope.  Nothing beats perforce.  Nothing.

P4 allows you to check in sym links, CVS does not.
P4 merges and branches are very powerful, and allows an admin to painlessly send reports of version/label changes.
P4 is FAST.  Very fast.
P4 doesn't leave those stupid CVS directories all over the place.
P4 labelling is painless, I'm not sure about CVS.
P4 keeps all branches in different directories which allows you to work on multiple versions at once, and compare them.

I can easily recreate, on demand, any release we've shipped at any time - and I'm not an admin, just a developer.  Or I can jsut recreate a module (DLL or .so), device driver, config file, etc. which was given a version label.  Painlessly.

The $150/year subscription fee is nothing compared to it usefulness.

Tuesday, January 13, 2004

What is P4?

Googling did not help

Not Annointed
Tuesday, January 13, 2004

P4 = Perforce command line interface

CVS = Concurrent Versioning Sucks
Tuesday, January 13, 2004

P4 = perforce

" Nothing beats perforce "

Bob Dobalina
Tuesday, January 13, 2004
Tuesday, January 13, 2004

CVS isn't state of the art, and is inferior to perforce in most respects, but ....

CVS (since CVSNT 2.0.8, which is included in recent Tortoises) has reasonable support for history-sensitive merging. (They said it couldn't be done, so Tony Hoyle just went ahead and did it .....). Not perfect, but definitely working.

CVS can have multiple versions in multiple directories. Just checkout multiple times. It's VSS that gets confused when this happens, CVS has no problems.

And CVS has wider tool support than any other version control system  - Tortoise, FogBUGZ, ViewCVS, BugZilla, and many others integrate with CVS.

Not saying CVS is the ultimate solution, it isn't; Perforce is better. But it IS extremely usable, and constantly getting more so in CVSNT.

Ori Berger
Tuesday, January 13, 2004

CVS is definately showing it's age.  15 years ago it was great, not only much better than RCS (which it's built on), but better than it's competition.

Now things are different.  There are some open source projects trying to replace it, but I've never used them.

My rankings, IMHO:  VSS, RCS, CVS, Clearcase.  VSS is absolute garbage, don't even go there.  RCS is ok, but won't recurse directories.  CVS was nice until I used Clearcase.  Clearcase rulz dewd.  Helluva steep learning curve, large hole to shovel cash into, not recommended unless you have 40 or more developers.  But man, you get used to clearcase and it really bites going back.

Tuesday, January 13, 2004

Chek out Subversion:

"The goal of the Subversion project is to build a version control system that is a compelling replacement for CVS in the open source community."

Mahmoud Wardeh
Tuesday, January 13, 2004

Sounds like everyone is trying to topple the king.

You definately have to take the future into account. As Ori Berger pointed out, if you choose a less widely supported variant, you'll have a harder time choosing other support software and integrating.
Tuesday, January 13, 2004

> Chek out Subversion:
Very nice, esp. with ongoing development of TortoiseSVN.

Tuesday, January 13, 2004

If you use a Microsoft SCC compliant ide/editor as your development environment,  using somthing like Zeus SCC-SVS: will add a level integration between CVS and the development environment.

Jussi (
Tuesday, January 13, 2004

Regarding Subversion; it looks interesting, but do you trust your code to version 0.36 of anything?

Not that it's necessarily bad, but I'm sure they would release 1.0 if they thought it was ready.

Tuesday, January 13, 2004

Appearently Subversion is written by the same guys that wrote CVS.

As for it being stable at 0.36  (1) read the FAQ which covers this quesiton in detail (2) notice that there are hundreds of projects being managed in subversion.

Perforce sounds great (although Joel claims CVS is *good enough*).  One of my perforce friends told me this though:

In perforce it's relatively easy to check in / merge your changes with an older version of the code.  In other words, you are working on something starting Jan 15th, you need to check your work against other updates up to Jan 17th but it is currently Jan 20th and there are major changes in the code now.  Changes that would be a major distraction like say a file format changed and you'd have to rebuild all your data.  In CVS you are basically SOL.  You almost have to get the newest version.  In Perforce you can get and merge your changes with an older version fairly easily or so I'm told.

Gregg Tavares
Tuesday, January 13, 2004

The SVN guys, I'm fairly sure, have been "eating their own dog food" for about 2 years now, without issue. It's already extremely stable and reliable.

I think they have an explanation for not going to 1.0 yet, but I think its along the lines of, "we are sure it's stable, but we want to be reallly sure".

Personally, I've started to use SVN at home and like it very much

Dan G
Tuesday, January 13, 2004

The only good thing about CVS is that it is free (as in beer).

Mister Fancypants
Wednesday, January 14, 2004

I've been using Subversion for a year now with no problems.  Add TortoiseSVN and you'll be one happy camper.

One warning: when I was starting out with Subversion I tried using the RapidSVN GUI (it's a separate project), and it consistently trashed my repository.  Good thing I was fully backed up.  Perhaps they've fixed the problem by now (I sent a bug report), but in any caseTortoiseSVN is more convenient.

Wednesday, January 14, 2004

I have used both the standard and enterprise versions of StarTeam.  They have always treated me well.  I have never had any problems.  Worth a look, if the price tag doesn't scare you.

Its nice because it has change management built (bug tracking, etc.) into it as well (sorry Joel).

Wednesday, January 14, 2004

re: the < 1.0 release:

"If it were any other project, it probably would have been declared "1.0" long ago; but because it's version-control software, we're being extra paranoid about labeling."

Wednesday, January 14, 2004

The best was IBM's old CMVC. Integrated defect tracking with source code control and did both well; arbitrarily programmable to add/remove extra fields; easy to write new clients which could hide complexity.

IBM was never interested in selling it; but damn I miss it.

Wednesday, January 14, 2004

We're using Subversion here. 

My biggest complaint is that the tools aren't very well polished yet.  Some things aren't very intuitive.  The web-based interface needs some improvement.  Merging is still a little rough around the edges (I haven't tried the new TortoiseMerge yet).  Tortoise has some minor bugs.  Error messages don't really give a good indication of what's wrong.

But the tools all work.  No lost data.  Nothing that I'd consider a show-stopper, especially for the price.

Myron A. Semack
Wednesday, January 14, 2004

funny, no one mentioned vault.

Prakash S
Wednesday, January 14, 2004

We've just picked up Surround SCM by SeaPine Software.  It's a little pricey, but I think it's pretty worth it.

Wednesday, January 14, 2004

Regarding Subversion: 1.0 release is almost there. As states, 1.0 should be released on 23 Feb 2004! Good news!

Wednesday, January 14, 2004

I'm using a product called 'Cimera'. Not only does it do all that source code stuff but it also allows you to manage *anything* in your organisation; whatever you want.

Want to track hardware? Define the type, its attributes and its lifecycle. Want to manage changes? same. Want to manage problems? Go ahead. Want to manage some other obscure request type? Just enter the details. Want to manage buildings? Define the type. Want to manage relationships between any types of things? Just define the relationships. Want to associate data with those relationships? Just define the attributes. And I mean between ANYTHING, not just whatever someone who thought how the product would be used defined. It's an unarrogant product!

Wednesday, January 14, 2004

Something else to consider: The Repeated Merge Problem

This is when you want to merge a branch back to the trunk, do some more work on the branch and then merge it again without the version control system trying to merge the first lot of changes again.

Both CVS and Subversion force you to deal with this problem manually (and it's quite easy to do it wrong if you're not paying very close attention).

Subversion are aware of the problem but they've punted solving it to version 2.0

The Perforce doco seems to imply that they handle repeated merges automatically :

Wednesday, January 14, 2004

> 1.0 should be released on 23 Feb 2004! Good news!


Would you trust your code to any x.o version of software?

Wednesday, January 14, 2004


i like i
Thursday, January 15, 2004

My vote would be Perforce. It costs real money (not open source, not free) but it is worth it. Its workflow seems to more naturally match the way I work, and it's less "in the way" than other products. It is true client-server, so it is very efficient on wide area connections, and covers many platforms. It also handles binaries and multi-platform naturally (including Mac), so you can keep all of the project documents in source control without any bizarre side-processes. It took me a while to get used to their terminology, but once past that it's been a winner. (I have no financial connection to the company - just a happy convert after using it for a year...)

Sunday, May 23, 2004

*  Recent Topics

*  Fog Creek Home