January 07, 2004

Looking for SCM feedback

To all the programmers out there,

I was wondering if anyone that reads my blog has suggestions for source control management tools that they use with their team on a regular basis. Right now we use CVS here, with WinCVS being our front end.

Trying to get developers "into" SCM isn't easy... and using CVS in Windows is not the most eligent way of doing things. Nor is it easy for those new to using SCM. So I started hunting down other options.

I have checked out TortoiseCVS, which is basically CVS integrated within Window's Explorer ... but I don't think it really is a great leap in simplifying the SCM process.

I was seriously considering SourceGear's Vault, but to be honest I am quite disappointed at how unresponsive Eric Sink has been in the past to emails I have sent. I have always respected his outlook as an ISV, as depicted in many great articles on his weblog. Yet to this day he has never once responded to any communication I have sent. If this is how he handles himself, I really don't want to dispense any more energy chasing him down if I need to communicate as a potential customer. Which is really to bad, as Vault looked interesting, especially with its integration with FogBugz.

Microsoft's Visual Source Safe is right out. When Microsoft isn't willing to eat its own dogfood, you have to wonder why. I have heard horror stories of master source trees getting corrupted, and the fact VSS does not scale at all. With no positive experiences, war stories or case studies around... I'd rather not waste my time, even if it is free and part of my MSDN Universal subscription.

I found out that Microsoft uses a customized version of a product called Perforce for its own source code, and that is what I am leaning towards right now. It's quite nice as it has a server that runs on Unix and Linux machines as well as Windows... which means I should be able to use the current CVS server hardware (running Debian) and run both systems concurrently... atleast for testing. Perforce seems to be quite easy to use from what I have seen, and the rave reviews from Windows developers abound has me taking a more serious look at this. The Windows client looks pretty nice.

If I had to pick a set of features I want, this is what I am looking for:

  • Something braindead easy with a point and click UI that can be used externally (good for kernelmode code using the DDK... stuff that isn't done in Visual Studio)
  • It should integrate directly into Visual Studio 2003 for such projects (ie: C# stand-alone apps)
  • It must support the ability to branch and merge back changes, as well as tag versions to allow me to run different versions concurrently, while easily being able to fix bugs in the main tree.
  • It must be able to run over a secure channel, allowing for remote users to check in/out code after being authenticated. (Even just supporting connections over SSH like CVS does would suffice) It also must have well documented ports, as I will not pierce my firewalls with tonnes of different ports to support it.
  • It must be small ISV friendly on the pocket book. I have spent so much money on Windows developer tools it isn't funny. I can't really afford to be blowing thousands of dollars more on a solution that might not work for us. Besides the standard ROI calc, I would like to KNOW I am getting the most bang for the buck.

So, what are your thoughts? Anyone know if Perforce fits this bill... or of other SCM tools that will? Chime up here... or send me an email to dana@vulscan.com.

Posted by SilverStr at January 7, 2004 08:07 PM | TrackBack

I *highly* recommend that you check the A.C.M.E. project out:


Tons of links to SCM, SRM, commercial tools, free/oss tools

I think it's key to find something that will work from a variety of platforms: Windows client, Linux client, OSX client, web browser, etc. Remember that once you pick one, you're going to be stuck with it for a long time!

Posted by: Wim at January 7, 2004 09:04 PM

I would check out this plugin for Subversion:


I didn't realize this plugin existed until just now... it looks pretty slick, I'm tempted to start using it at work for the VB/Java/HTML stuff we do.

Posted by: Wim at January 7, 2004 09:09 PM


Subversion is probably the best you will find that is free, I've heard tons of good things about it, but it's no easier to use than CVS, and apparently, the windows server is shite.

Everyone I ever talk to always comes back to Perforce. Apparently Source Depot (what Microsoft uses) is based on an older version of Perforce and the new one is even better huhu.

You really (IMO) want something that supports SCC, and Perforce ( http://www.perforce.com/perforce/beta/p4scc/ ), although AFAIK there are SCC plugins for CVS and even Subversion.

But I know you work in unix now and then, so take a look at these P4V screenshots, maybe they will make it easy to decide :) (http://www.perforce.com/perforce/products/p4v.html) I personally think that http://www.perforce.com/perforce/products/p4vss3.html is the coolest screenshot of any related program that I have ever seen.

Stick well away from Sourcesafe, please do yourself a favour.

Posted by: Gareth Lewin at January 8, 2004 12:07 AM

You may wish to consider the Seapine SCM product. Version 1.5 was very good from my experience.


Posted by: Brian at January 8, 2004 01:11 AM

I use CVS, mostly for ease of use and wide availability, but I expect I'll switch to Subversion when it matures as there are some things CVS doesn't do that I don't need often but which would be really nice once a month or so. You'll probably find this
version control system comparison page interesting. It includes quite a few version control systems that no one has mentioned yet, both free and commercial.

Posted by: jwalden at January 8, 2004 09:30 AM

Interesting post dude!

Posted by: Arcterex at January 8, 2004 02:02 PM

Really interesting! :)

Posted by: Arcterex at January 8, 2004 02:02 PM

Dana, please accept my apologies for the fact that you have received no responses to email from me. It is my policy to respond to *all* personal emails I receive, so I can assure you that either I have made an honest mistake, or some sort of technical glitch prevented me from receiving your messages. I will check my spam filter to see if perhaps your emails were incorrectly tagged and ignored.

In any case, please do feel free to contact me. If you want to try email again, I'll keep an eye out for it. My phone number is 217-356-0105 ext. 633.

Also, there are other options for contacting SourceGear besides just me. For example, you could post a question to our discussion forums at support.sourcegear.com.

Posted by: Eric Sink at January 9, 2004 08:01 AM

Thanks for dropping by Eric, and for providing the apology and contact info. I really appreciate it.

Perhaps if you have a few moments, I would love to hear your insight on my needs (as per the blog entry), and if Vault can meet them. I am also sure some of the readers here would like to hear about it, as some have talked to me in email asking what Vault is about... not even knowing it existed until my post. Might get a sale or two from it... you never know!

Posted by: SilverStr at January 9, 2004 07:18 PM

So I can't offer much in the way of alternatives since I recently chose to use SourceSafe with my project at work. :O But I can offer an end users perspective of what's neat about Perforce.

We used Perforce at the last company I worked for (www.biosgroup.com) along with BugZilla. The best thing about that setup was the integration. There was a Visual Studio plugin, but since I was the only MS programmer there I was the only one that cared. The part that we really cared about was the Bugzilla integration. The ability to tie a bug to a specific piece of source code was a BIG plus. The fact that the communication was two way was an even BIGGER plus. So developer sees a bug listed for a particular class he is responsible for, fixes the bug, and during the check in of the fix is able to clear the bug (comments, status, etc...) in one step. Big time saver given the complexity of the code that was being written. Lots of bugs, often cross pollinating bugs(? if that term exists)

We ran our Perforce server on Solaris 8 I believe. We also had offices in multiple cities ,D.C., Santa Fe, and Boston, and were able to run it over a WAN with some ease. How easy it really was is hard for me to say since I'm a propeller head not a gearhead. :)

Posted by: Scott at January 9, 2004 09:07 PM

Perforce is a fine product, or so I hear. Some people find its learning curve to be a bit steep, so I suggest you try their demo. Perforce is faster than everything else, including Vault.

But Vault is easier to use. More specifically, Vault looks a lot like SourceSafe but acts more like Perforce. People who have tried SourceSafe find Vault simple to use.

I usually suggest that users should not run *any* SCM tool inside Visual Studio, but Vault does support this integration capability.

Vault has branch and merge capabilities now, but they are much improved in version 2.0, to be released in the next few weeks.

Vault can run over a secure channel. It uses HTTP and is served by IIS, so all you need to do is setup SSL.

Vault is very inexpensive compared to most of the other serious SCM tools.

And, despite your unfortunate experience in trying to contact me personally, SourceGear's tech support and responsiveness is considered by most to be excellent.

Whichever way you go, thanks for considering our product. Do feel free to contact us if you have any further questions.

Posted by: Eric Sink at January 10, 2004 07:47 PM

In the past, I've used Microsoft SourceSafe, Rational ClearCase, and CVS with WinCVS. A couple of months ago my company migrated from CVS to Perforce and I have to say it is by far the best SCM system I have experienced. I would recommend it over any of the other systems I have tried.

Perforce is rock solid, really stable, very fast, supports atomic transactions, has a nice Windows client, good SCC integration (for Visual Studio .NET), and is incredibly easy to extend using triggers (scripts that run when a change is submitted) and daemons (scripts that run periodically).

Perforce fits all the points you mention, except perhaps for the fact that it costs about USD 700 per developer license. But I would definitely recommend you get an evaluation license (you can download a non-time-limited two-user license for free) and check it out.

Posted by: Jói at January 12, 2004 09:17 AM

Hi. Coincidentally, I just published an article at my weblog which, more or less, details why CVS sucks and you should use Perforce instead. I hope you find it useful.

I can't say whether Perforce will be "worth it" for you, but I can say that I know that you can evaluate it for free (I believe it's free for 2 seats or less, and they're pretty reasonable about giving eval licenses if you want to try it with more users), and I can say that I can't imagine having built a product of the scope and complexity that I'm working on now without it. I love Perforce. Perforce is my special friend.

Posted by: peterb at February 5, 2004 05:52 AM

The source control system called 'source depot' used heavily by major teams within Microsoft, is a re-implementation of Perforce.

The concept, behavior and even the command line syntax of Perforce has been copied to the T by Microsoft's internal team which implemented source depot.

Given that a perforce-clone is used for handling a gigantic! project like Windows source code is a huge testimony to the superiority of Perforce.

Posted by: Sujoy Gupta at May 18, 2004 10:59 PM

Ya perforce looked pretty good. However, I found a solution that met my needs better. You can ready my conclusions at: http://silverstr.ufies.org/blog/archives/000551.html

Posted by: SilverStr at May 19, 2004 12:11 AM