CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Jeremy D. Miller -- The Shade Tree Developer

Under the hood and working with .Net, TDD, Software Design, and Agile Stuff

Getting off of VSS and onto Subversion

Steve Barron asked for a pointer to a VSS alternative.  My team uses the open source Subversion system for source control and we're very happy with it.  The best thing to say about it is that it almost never gets into the way like VSS can.  Continuous Integration is certainly much smoother with Subversion.

For a Subversion client we use a mix of the TortoiseSVN client that integrates into Windows Explorer as a shell extension and the Ankh plugin for Visual Studio.Net integration.  I like Ankh, but I could honestly live without any IDE integration.  Subversion uses an optimistic locking scheme so multiple users can simultaneously edit the same file.  It sounds a little scary at first, but the merging isn't really that big of deal and the convenience factor outweighs the negative results.  Just think what a pain in the neck it was with VSS constantly fighting over who had the project files.  The Subversion clients are smart enough to recursively find new files all at one time, so the client is a lot easier to use from outside the IDE than the VSS client is.  Plus I've found Subversion to be much faster than VSS.

There is a conversion script to migrate a VSS repository to SVN at http://vss2svn.tigris.org/.  We didn't have much luck with it because of some VSS corruption issues, but a friend of mine was able to use it successfully.

I'm not fond of CVS because of some bad experiences in the past, but it's also a viable choice.



Comments

Eric Wise said:

I like vault pretty well... seapine if you want to spend the big bucks.
# February 21, 2006 8:25 AM

Brendan Tompkins said:

Jeremy,

We've been having some issues with VSS lately here anwhere from file corruption to one of our team members being unable to get latest from VS..

I'm seriously considering a move to Subversion. Do you know if there's a good tutorial out there that shows step by step the setup process, conversion and VS integration?

-Brendan
# February 21, 2006 11:46 AM

Steve Barron said:

Thanks for the info, I'll give it a try ASAP!
# February 21, 2006 12:26 PM

Sam said:

"Pragmatic Version Control using Subversion" is like $20, and answers lots of those questions I had when first starting out with SVN like "how many repositories should I create?", and "what should the folder structure look like? Is there a _right_ way?".

Of course I didn't read it when I was first starting out with SVN, so I did pretty much everything wrong for awhile. ;-)

Things like creating users... I was already serving my repository from Apache for awhile, but I didn't create user accounts until a month or so ago. It took like 15 minutes with no experience when I finally looked up how to do it.

So anyways, yeah, I highly recommend both SVN, and the book.
# February 21, 2006 2:42 PM

Jeremy D. Miller said:

I'd second the recommendation on "Pragmatic Version Control using Subversion"

- and to answer another question before it gets here, you don't *have* to run and install Apache to use it remotely. The security might be a little bit tighter though.

We're having no trouble accessing SVN over the WAN.
# February 21, 2006 4:38 PM

Weston M. Binford III said:


We migrated from VSS to Subversion using the vss2svn.pl script. Here are the steps that helped us avoid problems.

1.) Analyzed VSS respository and handled any corruption errors before we started the migration. See (http://web.archive.org/web/20050308043631/http://www3.primushost.com/~ckollars/vss.html

2.) Use a clean (perhaps, virtual) machine. Install VSS 6.0c (see below), subversion, and ActiveState perl.

Note: Install VSS 6.0c (not the latest, 6.0d). THIS IS VERY IMPORTANT! The vss2svn.pl script does not play nice with 6.0d. This fact is documented somewhere in the vss2svn.pl release notes, but I did not discover it until I had spent several hours trying to make it work with 6.0d.

3.) Archive your VSS repository and restore it to the new machine. This avoids network latency issues accessing the repository.

4.) If you want to retain the history (dates) from VSS in Subversion, you need to use the --setdates parameter on the vss2svn.pl script. Also, you have to hook up the pre-revprop-change event for the --setdates option to work. See the usage statement in vss2svn.pl (vss2svn.pl -help) for mor information.

5.) Finally, if you want to retain the user information in Subversion, then you have to create all of the VSS users in the conf folder under svn.

Hope that helps,
Weston


# February 22, 2006 4:21 PM

matt said:

I agree that SVN is a great alternative to VSS 6.0 after using both, but as our company is moving along with .NET 2.0 we are considering the Team System suite that has a beefed-up version of VSS 2005. Also, with VSS 2005, does anyone have an opinion on how these new products stack up against SVN?

Thanks!
Matt
# February 27, 2006 1:48 PM

Koob said:

I just started to use Subversion. At work still using VSS. We don't have any problems with corruption. But it is a risk. Being in charge of the builprocess, I understand CI is much better with subversion. But there is one thing uptil now I think VSS (in combi with VS2005) is much better: The file and project history. Especially when you apply frequent labelling. Am I missng out on some Subversion history and diff tools here? For me this is the most important part of version control, but it's hard to et an overview of the possibilities in Subversion. Any help?

Thanks,

Koob.

# December 15, 2006 4:57 AM

Jeremy D. Miller said:

What are you using for a client?  TortoiseSVN gives you very easy access to past versions and Diff reports.  

# December 15, 2006 7:32 AM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add

About Jeremy D. Miller

Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy previously worked as a systems architect building mission critical supply chain software for a Fortune 100 company and learned agile development practices as a .Net consultant at ThoughtWorks, one of the pioneers of agile development. Jeremy is the author of the open source StructureMap (http://structuremap.sourceforge.net) tool for Dependency Injection with .Net and the forthcoming StoryTeller (http://storyteller.tigris.org) tool for supercharged FIT testing in .Net. Jeremy's thoughts on just about everything software related can be found on his weblog "The Shade Tree Developer" at http://codebetter.com/blogs/jeremy.miller, part of the popular CodeBetter site. Jeremy is a Microsoft MVP for C#. Check out Devlicio.us!

This Blog

Syndication

News

All opinions expressed here constitute my (Jeremy D. Miller's) personal opinion, and do not necessarily represent the opinion of any other organization or person, including (but not limited to) my fellow employees, my employer, its clients or their agents.

About Me

"Best Of" Compendium

StructureMap (Dependency Injection for .Net)

StoryTeller (Supercharged Fit)

Build your own Cab

TestDriven

MVP