Fog Creek Software
Discussion Board

CVS & .Net help?

Prompted by Bill's thread on Joel's test, I'm resolved to get my projects into CVS tonight, one way or another.

The problem I'm having - I've got the server running and the client set up, but I simply cannot figure out how to get my existing ASP.Net projects *into* CVS. If someone can point me towards a fairly straightforward "idiot's guide to importing a project using WinCVS" I'd be forever grateful...

Philo <- will read directions, if he can find them...

Tuesday, April 22, 2003

make new module
add files
check in

in that order.

Tuesday, April 22, 2003

I've been working on a similar exercise. I've been trying to get the Rotor codebase (Microsoft's shared source implementation of the .NET CLI) into CVS for three weeks now.

One thing I learned - be VERY careful about binary files. By default, CVS treats all files as text, and will do cr/lf translation and keyword expansion unless you tell it not not explicitly. I *think* I figured out how to tell it not to - edit the cvswrappers file. I'll let you know if it works. ;-)

If you have a large source base, the cvs import command is the fastest way to get the whole shebang into the repository in one fell swoop.

The free book available at:

is an excellent tutorial on how to use CVS, and is fairly platform independent.

Chris Tavares
Tuesday, April 22, 2003

There's a pretty significant difference between the way that CVS works and the way that VSS works (presuming that's what you're familiar with).

See if you can find a doc somewhere on the web (I seem to recall one) that specifically talks about adapting to CVS after using VSS.

And finally, don't use WinCVS. Use Tortoise. It's far easier to use. WinCVS is very arcane and complex by comparison.

Brad Wilson (
Tuesday, April 22, 2003

Oh, and Chris' warning about binary files is really only applicable to the command line CVS client. The GUIs like Tortoise will automatically detect binary files and do the right thing.

Brad Wilson (
Tuesday, April 22, 2003

There is a Studio.NET plugin for CVS called Igloo.  It's freeware (IIRC) and done by a guy named Jalindi (google on that and you'll surely find it).

I use it for my home development and it integrates in almost as nicely as VSS does.  I haven't had to migrate an existing project into CVS using Igloo, but I imagine that it works just like VSS does - use the Source Control menu off of the File Menu in Visual Studio to add files.

Tuesday, April 22, 2003

I agree with the comment to use Tortoise rather than WinCVS for most tasks. 

But the WinCVS daily use guide is an excellent short introduction to CVS: <a href=""></a>

Rob Walker
Wednesday, April 23, 2003

I knew I'd choose the wrong way to quote the URL ...

Rob Walker
Wednesday, April 23, 2003

With regard to "Jalindi Igloo", the plugin mentioned by David: it isn't perfect but it works. The real problem is that it tries to make CVS work like SourceSafe.

Really, CVS works in an entirely different way. You aren't bound to the obsessive checkout-edit-checkin cycle that VSS demands. You *can* work that way, but it's easier to use CVS as something external to your IDE, and use Tortoise or WinCVS to commit your changes.

For example, with VSS, if you want to add one function to a utility library that's being used throughout the project, you would:

1. Check-out the file.
2. Very quickly make your changes.
3. Check-in the file ASAP so that you won't hold up anyone else who might need to edit it.

With CVS:

1. Check-out the entire project.
2. Make changes at your leisure.
3. At some point hours, days, or even weeks later, commit your changes.

With CVS there's no need to have the checkout commands integrated to the IDE . And the IDE's attempts to "help" you manage what is and isn't checked out just gets in your way.

Nathan Silva
Wednesday, April 23, 2003

And a hint on verbage differences:

VSS "Get Latest" = CVS "Check-Out (first time) or Update (subsequent times)"
VSS "Check In" = CVS "Commit"

There is generally no analogue to the VSS check-out process. You simply edit the files and the system keeps track of everything on your behalf. You can use the system in "watch" mode, but even that leaves the "hey, I'm editing this!" process as optional.

Brad Wilson (
Wednesday, April 23, 2003

First post here ;-) Thanks for all the advices.

I am using something that is not cvs-based but it might be of help for a team of one (or two). It's named keep-it and I use it all the time. It has never failed me, it's free and you can get it at

No need for a server, quite a life saver: you create a container, drop the files and/or directories you want followed and make snapshots once or twice a day. Foolproof.

Thursday, April 24, 2003

sorry about the url. I'll try again

Thursday, April 24, 2003

Im new to source control and am considering both Igloo and SCC plugin for Tortois, i tried the latter and didn't see any of the commands/windows/menus integrated into VS.NET .  Then i tried Igloo but i dont quite know what im doing.  I am working on a project and was hoping to use subverion but i think that this wont work because i am also using a CVS controlled project (Axiom) and want the always have the latest updated verion of it.  Also I went through Subversion tutorial, but it didnt work.  Any help about what i should do would be appreciated.

Wednesday, April 7, 2004

What binaries need to be included in cvswrappers for VS.NET 2003 ASP.NET C#?

Monday, June 14, 2004

This page  has a sample 'cvswrappers' file to get you started.

It also describes how to migrate existing code with history from VSS, which looks like more trouble than it's worth, unless you have a _lot_ of code and _really_ care about having its history in CVS (instead of just keeping the old VSS data around for reference).

Monday, June 21, 2004

Dan - if you're not familiar with CVS (or even source control in general) concepts, I think the IDE plugins are more likely to confuse than help you.

I'd second the previous advice and recommend using TortoiseCVS instead. After adding your project directory to CVS with the "make new module" and "cvs add contents" commands from the folder context menu, everything should be self-explanatory :)

Once you're comfortable with CVS, you can use something like Igloo to avoid having to switch back to explorer for checkin/update operations.

Monday, June 21, 2004

*  Recent Topics

*  Fog Creek Home