Are you Using Visual SourceSafe (VSS)? You really should be considering an upgrade! Notably VisualSVN!
Thursday, January 22, 2009 10:48 PM
What are you using for your source control? Are you using the antiquated, buggy and very unstable Microsoft Visual SourceSafe (VSS)? If you are, then it's time you did yourself a favour and check out VisualSVN! I pretty much guarantee you it won't cost you more than an hour of investigation and MAYBE another hour to install AND configure the server and client! Yup, it's THAT fast and easy! Read on for some further details about my recent and brief VisualSVN experiences.
I've used VSS for the past two years and it never sat well with me when I would get warnings telling me I should run the admin's Analyze.exe tool nightly/daily to correct for problems it might be encountering. HUH? WTF?! There was never a problem (at least that we ever experienced), but then why would we be seeing these warnings/errors if everything was ok? Obviously VSS thought there was something amiss enough to prompt for further investigation/attention. Or maybe VSS just wasn't feeling enough love? :> Anyways, that was just one small issue with using VSS.
Why didn't we move up to anything else? I was told it was too time consuming to look at anything else. Microsoft Visual Team System (MSTS) seemed like a natural evolutionary move, but it was too expensive (even for an MS partner, HUH?) and my boss said the "rumours around the web" was it required a full time administrator, a dedicated server and too much time to setup/config/maintain for our small company. Oh and VSS was good enough for our needs. Sure, ok, I bought that for two years. But I still got those Analyze warnings and the little birdie in the back of my head was always wondering.....
There are other version control systems out there, I've used MKS, PVCS, CVS and SVN.
Well, I've recently been exposed to SVN and what a difference from VSS! I've used SVN briefly in my past when I was doing Java development and there was some integration with Windows Explorer and Eclipse, but I have to say, it has certainly come a long way since then. I'm doing C# dev now and MAN, the plugin tool for Visual Studio called VisualSVN is very cool! They even have a server version (VisualSVN Server) which I have to admit is as fast to install and configure as the manufacturer's website says! Within minutes I had downloaded the program, installed it, opened it up, configured it, added a user and BINGO, it's done! It took longer to get Visual Studio hooked up to it then to set it up (and that didn't take long neither I might add :>).
The client program (VisualSVN) is a product you have to buy a license for, but you have a 30d eval to try before you buy. If you're going to take this seriously, you might as well buy it (~$50/seat, not very much considering ClearCase costs ~$4600). The server and the client integration is amazing and worth the cost for a business IMHO. Here's what it looks like off Visual Studio's main menu.
After you look around the menu, you'll see you have all the same functions/features you're used to with VSS (some of the shortcuts you see there are my customized ones). You can see the deltas/Show Changes, you can get latest/Update, Commit your changes, show history/Show Log, Branch, Merge, all the regular source control stuff you would expect to see.
If you've gotten to this point (installed VisualSVN), you will either play with it and figure somethings out for yourself, or you'll want to get a bit more background information before you go venturing out on your own. That's cool, I found this document to be fantastic to get up and running ASAP!
Other than that, what are some other key differences between VSS and SVN/VisualSVN?
VSS uses a Checkout/Edit/Checkin pattern to updating files. This means the server always has the latest and greatest and you have to do a Get Latest in order to see if there are any conflicts. SVN on the other hand uses an Edit/Merge/Commit pattern. You will need to update that local copy every once in a while, but you're probably used to doing a Get Latest every day anyways, so this doesn't change things. The main difference is where the information about what's being edited is stored, is the information on the server or the client. VSS has it on the server, SVN has it on the client. That small difference can be a major hangup for some people, it was for my company when we were switching from PVCS to CVS (similar patterns). Doesn't seem like a big deal right? We thought so too, but for some reason it just plays games with your mind a bit.
VSS uses the Microsoft developed source control API called MSSCCI. SVN does not follow or use that API. The main reasons are cause MSSCCI is for the checkout/edit/checkin pattern described above, it doesn't allow for atomic transactions (committing multiple files as one atomic unit like you would do in a DB, nope VSS/MSSCCI doesn't allow for this :<) and MSSCCI doesn't track folder status.
Another hiccup you might experience is if you're using the Express version of Visual Studio, you're not able to use VisualSVN cause Express versions don't allow for the plugin architecture. But if you're using Express to do corporate develoment.....maybe you have bigger problems?
Lastly, the server is free (YAHOO! :>) but the client isn't. :< You do get a 30d grace period to try it out. I've totally moved away from anything Apache and I was concerned about running an Apache server, but the VisualSVN Server install is so clean, unless you read about the server software, you'd never know you're running Apache (and I like it that way :>). To expose SVN out your network to the outside world, I would suggest creating a few users and groups, then you can open up the port on your router to share your code with fellow code heads!
I hope I've enlightened you a little bit about SVN/VisualSVN and VisualSVN Server. If you're using VSS, I strongly suggest you smack yourself upside the head once or twice, then do yourself a favour when you wake up and try SVN out! Just like stopping the smacking, you'll be glad you did it!
1 comment(s) so far...
By phenry on
Wednesday, March 11, 2009 8:53 AM
Re: Are you Using Visual SourceSafe (VSS)? You really should be considering an upgrade! Notably VisualSVN!
Glen Stansberry wrote an blog today about some additional SVN resources.
Ultimate Round-Up For Version Control with Subversion
This article has LOTS of helpful links.