Fog Creek Software
Discussion Board

From absolute zero to full CVS system in 2 hours..

Hi All,

After the recent discussions in the "Joel test in small businesses" thread, and the need to roll back my changes a few times in the past week, I decided to look into Source Control Systems.

I've had zero exposure to or experience with these systems previously. I understood their function and place, but just haven't used one yet. Tonight I decided to check them out and see what was involved in setting one up.

I looked into the options and reccomendations and decided on CVSNT and Tortoise. I have an all Windows network with various test machines, etc. and one primary dev machine. I am the sole developer on my projects (for now). I downloaded everything, installed them using the installation guides on the  respective sites, set up my modules, tested it, re-tested it, confirmed again that I understand how it'll work, and added the repository to my backup system all in just under two hours total. Actual setup (installation and configuration) took maybe 10 mins total for both.

There was some discussion on how long it really takes to set these systems up, and I'd say that my experience should be fairly typical.

Between this and my forthcoming transition to FogBugz from my under-used homegrown system, I just picked up another two full points on the Joel Test. Other than #11 (Candidates writing code), which hasn't been encountered yet, that makes for 100%. Now, all that's left to see is if the premise that the program has been designed to is valid, quality working conditions or not :)

Thanks to everyone for the suggestions and reccomendations on these topics.


Wednesday, April 30, 2003

FWIW and just to be contrary <g>, after trying both Tortoise and WinCvs I decided for the latter ( ). It's not as restricted as Tortoise, and managing with files in a dedicated application seems more convenient to me than Tortoise's right-click method.

While I'm at it, here are two tips for WinCvs newbies: get the *latest* builds, not the so-called "stable" builds which are hopelessly outdated.  And make sure to read through the latest edition of the WinCvs documentation (1.3 I think) before trying to do anything.  Also get the Cederqvist manual from .

The trickiest part of CVS are the administrative issues (creating repositories and modules), and unfortunately that's also what you have to do first before you get to use the more convenient features.  When I started using WinCvs I scrapped and redid the entire setup four or five times over before everything worked as expected.

Chris Nahr
Wednesday, April 30, 2003

"When I started using WinCvs I scrapped and redid the entire setup four or five times over before everything worked as expected."

Which is why SourceSafe is so popular.
When are the free software types going to realize that so long as you develop solely for your own convenience, you cannot compete? I simply DO NOT HAVE TIME to scrap an entire source control setup five times (or more?) to make sure it's working right. And justify that to a manager? Forget it.

WinCVS is close, but someone needs to get back to the beginning, grab a CVS newbie, and make a baby steps walkthrough that assumes nothing and explains everything.


Wednesday, April 30, 2003

Well, it might have worked faster if I had taken my own advice and read the manual before proceeding... unfortunately I first made the mistake of downloading the "stable" build whose manual is woefully incomplete!

That said, the problem is inherited from CVS which plainly states that tasks such as creating repositories and modules are "administrative" issues, and mere programmers should ask an experienced administrator to do it for them.

Which is kind of a problem when you're trying to be your own administrator, and you're just learning CVS.  Classic catch-22.

The *current* WinCvs manual does address this problem, by the way, and gives step-by-step advice for starting out with WinCvs. Unfortunately, there's little GUI support for these steps (i.e. you have to type in command lines printed in the PDF manual) and the CVS way of making modules known to the system is still completely absurd -- you have to edit CVS text files that are under CVS control, which means you first need to have a basic grasp of CVS and... well, see above!

Chris Nahr
Wednesday, April 30, 2003

Amen Philo.

I spent about 10 hours this weekend trying to get a decent IDE working with Tomcat + MySQL with connection pooling.  Most of the time I wasted was on the connection pooling problem.  In the end I thought better of it and realized my time is worth much more than the free-ness of free app server software - i.e. Tomcat, JBOSS.  Then there are the decent projects like MySQL.  MySQL is a popular db because it free and it is easy to set up on win32, which is why Postgresql (a superior db) is unknown to most of the windows world.  Yeah, it's possible to get Postgresql to work under Cygwin, but it's not a production-stable setup IMO and it's definitely not easy to set up either.

So I decided I'd rather buy a Windows Server license and use ASP.NET than have to deal with tomcat/JBOSS.  My time is not free =)

Wednesday, April 30, 2003

Hi Guys,

I completely agree that most non-commmercial systems are terribly un-doccumented and sadly under automated for anyone who values their time and stability.

However, in CVSNT's defense, the second link on their homepage is to their Installation Guide ( This is a step-by-step walkthrough of how to install and configure the system, complete with screenshots for each step and an explaination of why you're doing each step, not just what to do. It made an otherwise foreign process straightforward and simple.

Tortoise has some good documentation too. In fact, it all went so smoothly that I was paranoid that maybe I didn't understand it correctly, so I spent some time makeing changes to a test project, rolling them back, comparing, etc.


Wednesday, April 30, 2003

Agreed. I'd never installed a CVS system, and I had it up an running in 5 minutes, just like Josh, thanks to CVSNT's excellent installation help page. I already knew the differences between CVS and VSS (in terms of the way you use them), so I didn't have to overcome that hurdle.

Honestly, after working in the CVS model (edit/merge/commit), I don't think I could ever go back to the VSS model (checkout/edit/checkin).

Brad Wilson (
Wednesday, April 30, 2003

I'm a huge advocate of source control, but had never really given CVS a run (I did years back, but it's been a while), but decided that I should see what it is like.

As others have mentioned, setting it up and getting it running is a breeze. Following is a no-brainer, and is no trouble at all. The problem is that several options are intermixed as equals despite being dramatically different. Things such as the connection method: Whether to use pserver, sspi, sserver, ntserver, etc, and the ramifications of each. In the examples it jumps back and forth, occasionally using each. Doubling the trouble was something mentioned previously, which is that the stable WinCVS is nothing but trouble when used with cvsnt (that was a waste of several hours of my time...literally). In any case once I was going with the newer WinCVS things improved significantly and it was easy going from then on.

Dennis Forbes
Wednesday, April 30, 2003

It was mentioned in another thread that a fully operational and 'FREE' SCCS from Perforce was available for download.  The only limitation, it only supports a two user license. Me being the only developer with only a single workstation has no problem with that.

It took me ~1 hour to test it.  Setup was super quick.  Most of the time spent was just trying to figure out how things worked and incorportate it within my IDE.  Good documentation and quick setup examples on their web site.

The thing works like a charm and am very happy with it.  Since everything resides on my one machine, I make weekly backups onto a CDRW.  I briefly looked into CVS but I guess I just felt too lazy to have to work through a 'hack' piece of software.  IMO the commercial options just seem to provide a greater piece of mind.

Wednesday, April 30, 2003

I've been using FreeVCS for 3 years now. It amazes me that it doesn't get mentioned more often. There are several server ports to use most of the major databases out there (Interbase, Firebird, MS SQL Server, Oracle, MySQL, DBISAM, Flash Filer, and a few more). The client integrates with Borland's tools, but not with MS tools (drat!).

It just went to open source under the JEDI group. The home page is

Wednesday, April 30, 2003

Hum, I use both WinCVS and Tortoise on the machine.

Tortoise if good for working inside the file explorer and

WinCVS is good when putting lots of files together etc (using the flatten command button).

They both go to the same server and are not exclusive.

I even go command line for things like cvs rtag and such stuff.

Philippe Back
Wednesday, April 30, 2003

Hiho. Thought I'd add my two cents, after having just set up a source control system recently.

I tried downloading CVS, and without knowing what I was doing, the whole process of getting it to work was sort of frustrating and pathetic. I'm sure I was doing something wrong, and perhaps I should've read the documentation more closely, but after about an hour of trying how to get the system to work I gave up.

I downloaded Perforce and had a working system in 30 minutes. There was the slightest of learning curves - coming from Visual SourceSafe, I wasn't used to the 'Edit' command, and it took me a few minutes to figure out how to 'create' folders - but all in all, very rewarding and easy to boot.

As a sole developer, it's nice to not have to pay for simple source control, and even nicer not to have to stress about how to get a GUI interface for the system set up. Perhaps I'm missing out on super-cool features that CVS provides, such as build automation, but for the amount of time saved it seems like a good deal.

John LeBoeuf-Little
Wednesday, April 30, 2003

Perforce comes with a command line (P4) and you can download a number of APIs and Modules for various languages for Perforce As well a from
There is even their Jam build tool (a make replacement) and Perforce Ant tasks ( down loadable from )
So automating a build should be a snap with scripts, make, Ant, or Jam.

A Software Build Guy
Wednesday, April 30, 2003

I tried Perforce but I found the Windows GUI module sorely lacking compared to WinCvs.  Maybe I'm missing something but I noticed the following defects:

1. Doesn't show which files that were checked-out for editing are actually changed compared to repository versions.

2. Doesn't show labels for files, ever.  You have to click the label and then you get the files for the label, but not the other way round.

3. Weird formatting with revision numbers glued to file names. Any way to do a proper tabular formatting?

4. Strange warnings in the manual that the GUI app may not properly detect when an editor is done. Why doesn't it simply check the file modification date? Probably relates to #1.

5. Complicated backup. Must create a checkpoint with Perforce, then *separately* backup this checkpoint, a journal, and the data folder.

6. Any way to show a proper labelled revision list or revision tree for a file?

7. Comes with its own diff utility which is basically Unix diff in a window, without even side-by-side display. Apparently no way to use your own diff utility.

8. Must check in file to commit changes, then check out again to resume editing. With CVS, I can simply leave everything checked out.

9. Integrated defect tracker is a nice extra but really too primitive even for single developers. And why does double-clicking bring up that useless console text window, instead of the proper editing window?

Of course I would appreciate corrections if all of this is actually configurable in some way I haven't found, but so far I've concluded that I prefer WinCvs.

Chris Nahr
Thursday, May 1, 2003

Metrowerks uses CVS as their VCS system inhouse, and I personally use both WinCVS and Tortoise on my WinXP box for managing the multiple repositories of our development code.

They work together fairly well, using the same on-disk data structures to manage things.  Tortoise has a really nice integration with ViewCVS, a really useful set of scripts that run on a webserver running on your CVS server box to allow looking at the repository without checking things out.  Tortoise also has a better graph feature that doesn't suffer from the 16-bit bounds problem that affects the similar feature in WinCVS.

WinCVS has two advantages that keep me using it occasionally, such as the log window, TCL and Perl macros, and a nice filter capability.

Ben Combee
Sunday, May 4, 2003

Philo, this is a little late, but I happen to be setting up a new source control system, so here's my 2 cents for the sake of web completeness.  The only issues I had were:

1.) The WinCVS issue discussed above.  CVSNT recommends sspi proto instead of ntserver proto that WinCVS had set for 1.2.  Installed 1.3, and worked.

2.) I kept putting in a user name for sspi, like a dummy.

It took me under 30 minutes to set up CVSNT and WinCVS, despite my ignorance.

My VSS experiences were not that pretty.  People we always locking files and corrupting things.  Just horrible.
$ != usefulness.  In fact, there is little correlation.  Sorry.

Thursday, February 5, 2004

when are you evaluators of open source software going to understand that this software is not a value proposition for your company or an attempt to compete with a commercial product?

My open source work is my hobby. If you find the software useful great. If not and you have feedback, great! If you feel that your time is better spent with other software, no problems!

But for those of you who spot a job you wish to help do, welcome aboard brothers and sisters. We sail at dawn.

Peter Farmer
Friday, July 2, 2004

*  Recent Topics

*  Fog Creek Home