Alternative to SourceSafe in a Commercial Environment?
Jim the Bad asks: "After Visual SourceSafe inexplicably corrupted itself one time too many, my Boss has asked me to evaluate the alternatives.
This site lists some alternatives, and SourceForge is a commercial product that might suit. Are there any more? It must be rock solid, run on Windows and it must be possible to migrate existing SourceSafe databases. Developer Studio integration is also very desirable. What product would you recommend?"
Your Visual Studio integration requirement is a doozy. I haven't seen anything that works as well as VSS, but then again, another recommendation is to stay away from that anyway. Always use the Explorer or the command line tools.
Finally, the alternatives. Well, there's the Very Expensive ones which I won't list because you probably know them anyway and, well, they're hideoulsy expensive.
Then there's CVS. An el-cheapo box running Linux or BSD with decent HDD space, and WinCVS or TortoiseCVS can't be beat. I've successfully migrated some development teams to this setup (along with Bugzilla) and while there's a learning curve, it's certainly much better. Plus, developers can work from home seamlessly, which is generally not the case with VSS. There are lots of tools and help out there for CVS. Give it a try, you won't be disappointed. Plus, it's cheap!
We used Visual Source Safe at the beginning of our project (about 10 programmers), despite calls for using CVS instead. VSS did not last three weeks. It is the embarassment of the revision control world. It is Just Broken.
Note that Microsoft most certainly do not eat their own dog food. At least, they certainly did not then (1998-1999).
We threw out VSS. Moved to CVS, despite losing Visual Studio integration and past revision history. In fact, we just used CVS from a command window. It worked, and worked well.
There are commercial and free products now which probably fit your requirements. But if you can't find one, you still ought to ditch VSS and go with something that actually works. It doesn't matter how convenient your source control system is if it doesn't actually control it, or like VSS, actively corrupts it.
I use it and I'm very happy with it. Heck, even Linux kernel is maintained with it.
Or at least i think so. If I understand this correctly then sourceforge is just like sourceforge.net - a hideously large database of projects. I don't think that's what you are looking for. CVS is tested and good. But it has some problems. Go check out subversion too - subversion.tigris.org, it's a cvs-like tool that has fixed many of cvs' inconveniences.
and BitMovers BitKeeper is used for the Linux-kernel, so it has proven to be very reliable and extendable too.
Gforge is an opensource fork of Sourceforge (What irony?). You can buy support for it too.
At work we switched to Freevcs after experiencing one too many VSS database-corruptions.
FreeVCS is a free (as in beer) client/server VCS, using a relational database such as Firebird or Microsoft SQL Server. It is a stand-alone product, and as such offers no integration to Visual Studio (although some integration to Borland Delphi exists)
The original author has stopped development and released the source to the open-source project JediCVS.
JediVCS have yet to produce a release, so for now stick with FreeVCS.
I have always preferred Rational ClearCase over VSS and have also used a new product from SourceGear called SourceGear Vault which claims to be a compelling replacement for VSS. Well, guess what? They're right. Not only is it a better SCC, but it also has tight integration with both VS *AND* the classic remote access products from SourgeGear (ie. SourceOffSite) for your offsite development staff. Both are recommended, but the Rational tools are a bit pricey for smaller shops. I believe that a 5-node version of SourceGear Vault is priced around $599 (if you already owen SQL Server), or $999 (which includes a SQL Server license). Take a look at SourceGear Vault
Secure, stable, fast, multi-platform, good integration with issue tracking system.
cvs as the engine, you can install it on windows or on a cheap linux box (I prefer the later).
tortoise as the gui, it integrates in explorer directly, no need for a seperate program or GUI it is simply intuitive.
Jalindi Igloo as the dev studio integration. I've use it for a while and it was working as well if not better than VSS.
I've used vss for 6 years (during my redmond era) and had allright success with it but had to check the integrity of the database and we had to use backup a few time.
We started using cvs when OSX came out and had nothing but success with it. It has its limitation but it is straight foward and I even think it is Open Source (correct me if I am wrong) so if you don't like something, just change it!
It supports branching (a must if you ever plan on releasing a V2 of anything), which, although CVS claims to, CVS does it very badly.
It is quick.
It is EASY from an administration standpoint. Easier then VSS. Other then checking your backups once in a while, you never mess with it. It really is "install and forget".
It allows the possibility for work to continue despite network problems, although I admit this is a bit ugly.
It has atomic changelists. Unlike CVS, where each file is submitted independently, all files are submitted and succeed or fail as a group. So an entire feature either gets there or doesn't. This also lets you remove the entire feature with one command, and lets your QA department know exactly what has changed (They can ask the developper who submitted the change, "What does this do?" rather then having to ask that for every file that was part of the change - MUCH less work).
It is cross-platform, on just about anything you'll need it on (including Linux).
It even has MS Office integration if you want that.
It has a valid security model, at least when compared to VSS (which has absolutely no security IMHO - yes, you can set passwords and protections and such, but changing a few bytes in the client will nullify those protections!).
I can't recommend it highly enough. It isn't cheap, but neither is VSS.
Perforce is free-as-in-beer for the development of software that is licensed exclusively under an Open Source license.
http://www.perforce.com/perforce/price.html
pooptruck
Fortunately, I don't have to deal with that crap anymore, as I'm now using Perforce. It's certainly not perfect, but at least it doesn't bite big donkey dick.
Perforce is actually a pretty decent product. Personally, I prefer the command line interface, but there are plenty of third-party GUI tools which emulate the P4 windoze client.
One thing Perforce does seem to have difficulty with (and I'm not sure if this is just the result of user error) is a TRUNK (i.e., HEAD) = PRODUCTION development strategy.
In other words, your mainline sources always reflect what is (or is about to be) in production (that is, assuming you only release from one branch, like a website or something). To start a new project you branch from the mainline (or another branched project) and when you're ready for alpha testing, you release checkin restrictions on the mainline, merge your changes for the project back into the mainline, fix conflicts, start testing and make any repairs to the mainline. Then when, you're ready to release, you freeze the mainline again, tag it and push it to production.
I know you're probably asking, "why the hell would you do that?" The answer is that, theoretically if you've got one product you're releasing, but like to work on several different versions concurrently, then this branching strategy makes sense.
The problem with Perforce (and, again, this could be because of user error) is that it seems to generate unnecessary conflicts when merging back into the mainline. I don't know if this has been made easier in recent releases, but you may wish to make branching and merging a high priority test when evaluating any VCS software.
moto411.com
As I understand it, they're having a hard time selling the SF code, and to add insult to injury at least one of the original developers also have a Free competitor up.
Got time? Spend some of it coding or testing
PVCS - My software company migrated from MS VSS to PVCS, it works much better - but - at least for our relatively large project, it's kind of slow. We've been using it for about a year and it's worked well.
Clearcase - Rumored to be "THE version control system", I've heard it is complicated to setup and use, but Rational Clearcase is supposed to be the end all of version control systems. Checking out the link before posting, it seems that Rational software is now owned by IBM?
Starteam - I evaluated this product a while ago (18-24 months or so ago). It seems that this company has been purchased by Borland. But at any rate, Starteam seemed to be a very comprehensive version control system. We didn't choose Starteam - as many of our developers had already had PVCS experience and at the time Starteam was the new-kid-on-the-block and we didn't want to fight with a new product. We already had enough headaches with MS VSS, we wanted something we knew for certain would be tried and true. That being said, Starteam did look great.
Last but not least, CVS the open source version control system. I've used it a few times, but never set it up or configured it and can't really comment on reliability, etc. I'll assume it's great - I'm know others have mentioned CVS and I'll leave the people that have used it to give you more information.
I'd suggest discussing this on a non-OSDN sponsored forum. Whilst I trust editorial integrity here, any positive appraisal of Sourceforge will (quite rightly) come under suspicion, with this being the major money-maker for those bank-rolling this site.
But sourceforge isn't a VSS competitor - it's a whole-process management system. Its competitors are Clearcase, Sourcecast or the free system aegis. Clearcase has its own source control system but the others are built (AFAIK) on top of CVS - *that's* the VSS competitor here.
Both Perforce and Subversion are client-server. Perforce is excellent -- I haven't used Subversion.
I was checking in source code in VSS, and it was like "bleep, bleep, bleep, bleep, bleep!" And then, like, half of my repository was gone. It was a really good repository. I had to code it again twice as fast so it wasn't as good. It's kind of.... a bummer.
:-). It runs as an NT service, and we're currently running it in pserver mode. It supports NT authentication, but my development team is spread across several domains since it's a multi-organization development effort. In your case, NT authentication probably works, or if you're using ActiveDirectory, it supports kerberos and other stuff, too :-).
:-), and it's all on Windows.
Anyway, our VSS never crashed after using it for about 5 years, but ever since I was hired three years ago, I advocated for CVS. I learned a lot in how to initiate change processes, and after about a year, I put together a document comparing the feature sets of VSS to CVS. JBuilder integration with CVS was a nice feature, since that's what we use, It was CVS's excellent branch management capabilities that ultimately drove us away from VSS, since we were starting to need to do branching on stable releases during the next version's development cycles. VSS sort-of does branching, but very poorly. I had to document WinCVS 1.2 myself for the development team, but since the switch, our revision control management has been substantially more useful, and now we have a sense that it's working for us rather than working for it like with VSS.
We didn't need any BSD or Linux boxes. We use CVSNT at http://www.cvsnt.org and it works like a charm
We're going to set up the ViewCVS web interface soon so that we can get server-side views of our repository. The TortoiseCVS (sp?) Explorer integration is very nice, too, so you can see what files are modified and such right in the Explorer.
For us, CVSNT, WinCVS 1.2, and TortoiseCVS works very well