Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

VSS or SVN for a .Net Project? [closed]

At work, one of the head managers asked me to research on what could be the benefits of changing the current source control server (Visual Source Safe) of my project to SVN.

I really don't have anything against SVN, actually I kind of dig it, but in my humble opinion, change to SVN will not bring any significant benefits to the project, and will force us to use some third-party tools to manage the source control from the Visual Studio (we develop using mostly Microsoft tools only).

So, as a first step in my research, I ask you: what could be the benefits of switching from VSS to SVN?

like image 493
Hugo Avatar asked Mar 27 '09 17:03

Hugo


People also ask

What is VSS and SVN?

Tool of SVN and VSS The tool was originally developed by a company named One Tree Software which was later acquired by Microsoft. VSS is discontinued service now. SVN, on the other hand, is a free, open source version and revision control system distributed under the Apache License.

What is VSS tool?

Volume Shadow Copy Service (aka VSS, Shadow Copy, or Volume Snapshot Service) is a built-in Windows technology that allows snapshots of PC files or volumes to be taken, even when they are in use. Most backup software programs rely on VSS to perform backup and recovery operations.


3 Answers

SVN is more popular than VSS and has lot's of advantages. VSS is old and outdated.

  • Why Not VSS
  • Visual SourceSafe: Microsoft's Source Destruction System
  • Source Control: Anything But SourceSafe
  • Visual SourceSafe Version Control: Unsafe at any Speed?

Many developers nowdays are moving from VSS to SVN. If you will search for "SVN" and "VSS" in Google, it will show you lots of articles related to VSS to SVN migration.

  • VSS's lock-modify-unlock model makes collaboration on rapidly-changing files a major headache. Plus the overhead of needing an admin to unlock files that someone has checked out while they're on vacation.
  • With VSS, it's not a question of if you'll lose data - it's WHEN. Your source repository is supposed to be a rock - if a developer's workstation crashes, you should only have lost HIS changes. You shouldn't lose random files and data from the repository
  • VSS hasn't been maintained by MS in over 6 years. Can you even get support for it anymore?
  • Depending on your backup tools, you may not be able to get a complete backup of your VSS repository if you have just one person left logged into the server (meaning they left their dev tools open, or left the VSS client running).
  • VSS requires that all users have nearly full control, at the filesystem level (NTFS permissions), of the files that make up the repository.
  • There is no good, usable, easily available published API for VSS and 3rd-party tools are weak for the most part.
  • Merging sucks in VSS.
  • VSS: If you have developers spread across multiple timezones, the very act of both of them checking in can corrupt the database if they check in too close together, in the wrong order.

Now, this isn't to say that Subversion is faultless - there are certainly things it could do better, and things it doesn't do at all. But all the people who worked with VSS and SVN most likely will never come back to VSS.


If you will choose SVN. Here is a list of tools you may need:

  • AnkhSVN is a Subversion SourceControl Provider for Visual Studio.
  • RapidSVN is a cross-platform Subversion client.
  • TortoiseSVN is an easy to use SCM / source control software for Microsoft Windows and maybe the best standalone Subversion client there is.
  • VisualSVN is a Visual Studio plug-in that integrates Subversion and TortoiseSVN seamlessly with Visual Studio.
  • VisualSVN Server is a package that contains everything you need to install, configure and manage Subversion server for your team on Windows platform. It includes Subversion, Apache and a management console.

Here is a great book on this subject: Version Control with Subversion by C Pilato

Version Control with Subversion http://ecx.images-amazon.com/images/I/51iwjNGkQdL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg


Another good alternative to VSS and SVN is SourceGear Fortress which has Issue Tracking system in addition to source control - all in one. Or SourceGear Vault - source control only. Also there is SourceAnyWhere solution. If you need Microsoft solution than go with TFS instead of VSS.

like image 125
Christian Avatar answered Sep 28 '22 22:09

Christian


Microsoft has admitted to never using VSS on any of their internal projects (can't find the reference right now though :/). I used it for two years and it was stupid bad. Database was corrupted at least once a week.

Also, one of my favorite things to quote to VSS users is the first quote on Eric Wadworth's page, reportedly from someone at Microsoft:

"Visual SourceSafe?  It would be safer to print out all your code,
run it through a shredder, and set it on fire."

Definitely go with SVN. VSS is like the nightmares of 1000 demons.

like image 26
womp Avatar answered Sep 28 '22 23:09

womp


Consider a more modern tool like Git, Mercurial or Darcs. There are plenty of advantages, I'll leave the googling as an exercise to the reader.

like image 27
rfunduk Avatar answered Sep 28 '22 22:09

rfunduk