Fog Creek Software
Discussion Board




Using CVS with Visual Studio

Joel, you've mentioned before that you use CVS.

How do you integrate this with the VS.NET IDE?  Does it integrate nicely like SourceSafe, or do you do things manually?

I'm getting frustrated with SourceSafe and looking for an alternative...

Jason
Tuesday, March 09, 2004

Personally I just use the command line with CVS.

Since CVS is an "edit and merge" kind of source control system, and you don't have to check out files before you can work on them, I've found that IDE integration is completely unnecessary.

You may also want to look into Subversion, a ground-up rewrite of CVS with many advantages. We'll probably switch over ourselves soon.

Joel Spolsky
Fog Creek Software
Tuesday, March 09, 2004

Joel,

You dont know what you are missing?  Check out the CVS integration in Eclipse IDE.

Shakeel

Shakeel Mahate
Tuesday, March 09, 2004

The TortoiseCVS (www.tortoisecvs.org) program is a great CVS client.  It extends the Windows shell so you can see which files in a module have been changed since the last update and quickly view differences between any two versions on the change graph.  I've used many different CVS clients, but this is the best fit to the way I think of CVS (as an extension of the filesystem).

K
Tuesday, March 09, 2004

Joel,

What's your take on Subversion?  I'm guessing that you like it if you're considering switching.

Have you been evaluating Subversion for a while?  What are your experiences with it?  What do you like about it?  What do you dislike?

I'm really interested to hear your opinions of it.

Myron A. Semack
Tuesday, March 09, 2004

You should also check out Perforce before you spend any $$.  It's fast, solid, and works well for large projects.  www.perforce.com

(I'm not associated with Perforce, just a happy user at large company that uses it).

J. Peterson
Tuesday, March 09, 2004

> "before you spend any $$"

Huh? CVS and Subversion are free, open-source solutions.

Duncan Smart
Tuesday, March 09, 2004

We're moving from CVSNT to Subversion this week. I beat the crap out of it, and it's just amazing source control. Every CVS weakness that I ever complained about is gone, and the "changeset" concept has resulted in significantly easier to understand commits, and much better performance updates.

TortoiseSVN comes with a 3-way merge tool.

If you want IDE integration, there's Ankh.

Everything is, of course, reachable from the Subversion home page. http://subversion.tigris.org/

Brad Wilson (dotnetguy.techieswithcats.com)
Tuesday, March 09, 2004

I've used an automation tool that plugs into VC6 from Jalindi Software before. In fact, after having
installed CVSNT, I'm downloading it now.

Not perfect, but works well enough to do work with.

http://www.jalindi.com/igloo/

Programmer
Wednesday, March 10, 2004

Happy subversion user here.

Be advised that if you're doing ASP.NET development with VS.NET: there's a bug in both 2002 and 2003 that causes some oddities for web projects caused by the .svn directories subversion sticks in your working directory  There are numerous workarounds, so it's hardly a show-stopper, but that's the biggest issue we have with it.

I haven't been super impressed with Ankh, but it's still in pretty heavy development, and I'm perfectly happy to use Tortoise (with is great) or the command line to interact with the repository.

I *love* that moves and renames are tracked correctly and update working copies sensibly.  Atomic commits are one of those features where even if you don't really get it when you read it on the feature list, once you're used to having it you can't imagine life without it.

Overall, two thumbs up despite the VS.NET issue, which is unfortunately MS's fault and unlikely to be fully resolved until Whidbey.

Ian Olsen
Wednesday, March 10, 2004

By the way, CVSNT has atomic commits (all succeed or all fail), but without changesets, it's hard to go back after the fact and discover the group of files that changed during a logical commit operation. Changesets in Subversion solve that problem.

In fact, if you look at the cvs2svn conversion script, the vast majority of the work is attempting to determine what the appropriate changesets are out of the randomness of CVS commits.

Brad Wilson (dotnetguy.techieswithcats.com)
Wednesday, March 10, 2004

Ok so I'm a virgin to the whole idea of not using Source Safe in a Microsoft IDE so understandably I don't really know where to start.

I did some googles and found alot of articles that are over my head, or don't seem to pertain to what I am doing (which is developing ASP.NET apps using VS.NET).

Any pointers or intro HOWTO's that any of you can direct me to?

Jason
Thursday, March 11, 2004

For setting up Subversion in a Windows shop, I'd start here:

http://tortoisesvn.tigris.org/docs/TortoiseSVN_en/index.html

Chapter 2 will give you the fundamental principles.

Chapter 3 will get you a Windows server.

Chapter 4 will teach you day-to-day use.

Ian Olsen
Thursday, March 11, 2004

Just downloaded and installed Subversion and Tortoisesvn, and they look pretty nice so far...but so did my first girlfriend.

Aaron F Stanton
Thursday, March 11, 2004

Joel,
Is subversion an exception to the rule that a complete re-write of a system is not advisable...
Thannks,

Eddie Dickey
Friday, March 12, 2004

Slightly off topic, but in the Subversion manual they suggest setting up each project with three sub directories.  I understand what Branches and Trunk are for, but what would the Tags directory be used for?  They only say to use it for "Tags", but what is a Tag? How is it used?  Thanks!

Rich
Friday, March 12, 2004

A tag is a copy of the source that you want to freeze at a particular revision.  In subversion, these are "lazy" copies, so they don't use much disk space.

Say you're going along haking away on your branch and merging changes back into the trunk.  When you get the trunk ready for release, you'll want to "tag" that revision of the trunk as the shipping version.

Then, when you need to check out a copy of the shipping version in three months, you won't have to roll back through the revisions of the trunk, trying to find the release revision.  You can just go to the "tags/release_v1.0" directory and check out a copy.

Myron A. Semack
Friday, March 12, 2004

Can you simultaneouly tag multiple sources as being part of the same project at a given release of the project?

Aaron F Stanton
Friday, March 12, 2004

I would warn against Jalindi Igloo. I used it for a few months. The idea seemed nice, but it just ends up being a half-assed solution. In my case, a good part of the blame can go to VS.NET. Personally, I'm happiest when VS doesn't know about source control at all. (I use Tortoise CVS right now.) That way if I change tools I don't have to dig through VS and scrape out all the SCC goo the previous one left behind. Plus you can easily share projects with other developers that don't use your source control server and/or solution. (Otherwise VS throws a "where's my mommy" tirade when you open up a SCC-bound project.)

Matt Youell
Friday, March 12, 2004

There is also Eclipse integration for Subversion.  Visit http://subclipse.tigris.org/.

Daniel Rall
Thursday, April 08, 2004

*  Recent Topics

*  Fog Creek Home