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'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.
Blaming GW Bush for the Iraq war is like blaming Ronald McDonald for the poor quality of food.
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.
If he's looking for good version control then CVS bites big donkey dick.
Okay, I agree that CVS isn't perfect, but it certainly doesn't "bite big donkey dick". It's fairly straightforward, it's used by many, many folks out there, and there's good integration with lots of *other* development tools.
Frankly, I think that most of the people saying that CVS "sucks" read about how someone else found it lacking, and love having something to sound bitch about. Most people that have used CVS have probably run into the same issue that I've run into: CVS doesn't handle renaming source files.
And you hate CVS but recommend *PVCS*?
May we never see th
Excellent VCS, which also tracks change requests and bugs, making for a great tool for the development process.
It's neither Free nor free (actually fairly expensive), but it is great.
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!
I had a chance to use PVCS in the past few months and I was really not impressed. They have a great engine, but the GUI is written in JAVA and is so slow and clunky.
Now, I am sure that someone somewhere wrote a better GUI (since PVCS expose the API to the engine).
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.
For example, its branching "support" requires you to manually keep track (with tags) of when you branched, so that you have a chance in hell of being able to re-integrate later. Don't even think about just integrating individual changes, either; not only will you not be able to reasonably tag the base for the next integration (unless you like manually specifying the version for every single file), but CVS doesn't even support changesets, so you'll also have to manually figure out what files (and revisions thereof) were part of the change.
And on top of all the design misfeatures, it's simply buggy, in my experience. Numerous times, I've seen bizarre error messages for which I could find no other explanation (such as one commit I attempted that contained two files, which consistently failed, but succeded when I broke it into two separate commits).
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.
StarTeam is an interesting product.
I've never actually used it for production, but several years ago I did some evaluation of different source control systems, and stumbled upon it. It's not free, and it's relatively expensive compared to cheaper solutions such as VSS and Perforce, but they've got one of the coolest feature sets of any revision control system I've seen.
For example, one thing that I thought was especially cool about it was that you could actually have the bug system link comments to specific revisions of files in the repository. And they actually have an SDK for custom integration, so you can easily integrate it with your own custom tools.
That being said, CVS works OK if you're doing pretty straightforward stuff. But managing multiple branches on CVS? Ugh!
That said, it is pretty cool in that its representation is a filesystem that you mount so that files are automatically kept current. That said, the whole thing is complicated enough that I always used the "administrator" when I needed to do something, vs. just a get/put in a normal VCS system
I have mod points and I am not afraid to use them
So far, I have yet to see a source control system that is client-server. I've used PVCS, CVS, and VSS. They all store their "database" in some proprietary file array. VSS has the craziest scheme I've seen before, while PVCS and CVS seem to have the basic concept of a file is an archive. But really, for all the same reasons as any other database (security, performance, backup, transactions, ...) it should be client-server.
Is this not done for historical reasons, or technical ones?
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
Perforce
Starbase (now a Borland product)
Clearcase
PVCS
and on and on and on and on
I've heard the most positive feedback concerning Perforce and Starbase.
Come on people, this question is just begging for one of the "use Google" whiners to pop their heads up. Where is the "Well, duh, Ask Slashdot used to be so cool but it should now be renamed Ask Google" comments from the people who post a completely un-helpful link to a Google query such as "visual sourcesafe alternatives?"
About a thousand years ago (ok, maybe 9 years ago) I did an analysis of Windows source control products.
At the time, we looked at PVCS, SourceSafe (very new at the time), MKS's RCS implementation, CCC Harvest, Endeavor/PC, and who knows what else.
At the time, some of these things were big bucks. And, in general, they weren't that great. I seem to recall Harvest going for $3000 a developer seat. Shocking!
Anywho, 10 years later, and I'm fully committed to CVS. It's not the prettiest, and it's far from perfect. But:
1. It works well for me and my development group
2. Lots of people know how to use it, inside & out
3. It's free
4. It has lots of add-ons.
But again, there's room for improvement. Maybe the subversion folks will bring it all home.
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
I know someone who ran a 3-line dialup BBS under Windows 95 and used it as a workstation as well.
He only had to reboot it about every mealtime. Eventually switched to OS/2 when it became clear that this was going to be a non-flyer. But it did work. Kinda. Mostly. Reminds me in so many ways of many mission-critical Excel spreadsheets which is an oxymoron in principle but actually happens IRL. Some complete bananas-for-brains do that kind of thing and don't even keep backups. Aiyaiyai...!
Got time? Spend some of it coding or testing
I just saw some sad news on CNN - popular childrens' figure Easter Bunny was found dead on a Georgia road this evening. There weren't any more details. I'm sure everyone in the Slashdot community will miss him - even if you didn't enjoy his work, there's no denying his contributions to popular culture. Truly an American icon.
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 personally like CVS very much. But I think that I am going to like Subversion
Subversion
even more, in a few versions time. If you can wait a bit more than that you might want to look at an IBM research project called Stellation Version Control
Stellation
CVS is quite nicely integrated in that super IDE, Eclipse. And the two others have integration underway.
Look at perforce or bitkeeper.
I hate VSS with a passion. We've been using it as our Source Control system for many many years where I work. Lately, we get corrupt databases about every week or so. How does it happen? Usually people are connecting to VSS from home through a VPN, and the tunnel breaks in the middle of a checkin to the database. Since VSS's database is managed by the client, if it fails halfway through it is easy for the database to get corrupted. Additionally, the entire VSS database is writable for our entire development staff, hence no access control at all.
It is easy to fix a lightly corrupted VSS database with their dumb tool. Who the hell wants to do that, though?
So once upon a time, the database got corrupted and wouldn't magically fix. A couple of us showed off CVS to our manager and convinced him, eventually, to give CVS a try. We had it integrated on every developer's box through Jalandi Igloo, and moved all the projects over to a CVS server.
The experiment failed, and we're back on VSS now. Why did it fail? The developers found that Jalandi Igloo was about an order of magnitude slower than VSS's visual studio integration. Personally, I didn't have any problem with it. Occasionally Igloo would hang for a few minutes during a simple operation like a commit or a get. It was a pain, I'll admit, but we got many things out of it: A source control database that was text based and easily correctable, a source control system with sane branching, and the happiness of moving away from VSS. But the developers complained, some of them saying that utter frustration at CVS' speed was causing them to loose 100% of their productive time because they were so frustrated. [What dicks, eh? How can a slow source control system keep you from coding at all?] Others complained of more realistic productive time losses.
Anyways, we're back on VSS now. So now, when I go to edit a file that isn't checked out, sometimes it takes 5 minutes to check it out through visual studio. It just depends on who else is accessing the database at that moment, and how it gets locked. *le sigh*.
On a related note, I highly recommend Subversion as a source control system rather than CVS these days. The Subversion website could really use some work on becoming focused towards people who are interested in the software, rather than their developing of it, though. But I don't know of any visual studio integration worth mentioning, yet.
...as opposed to another (read: better) product.
Whatever.
It is great to see MS bashers bash VSS thinking they are bashing MS code.
I am very small, utmostly microscopic.
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
If you can float the cost of Rational's ClearCase, as in, money is no issue, then ClearCase is, by far, the best source control system. It fully supports parallel development, has a great merger, and just makes life simple for all developers once they learn the system.
I recommend ClearCase to any shop that has the cash to purchase it (and, yes, it is worth the price, but the price is VERY VERY high).
Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
This is the real man's version control system... if I could only count the number of developers that wish they had Clearcase at their current jobs after having worked with it at a prior job.
What to replace it with? At home and at work I use CVS. Sure, CVS has lots of problems, but at least they're well known problems with easy workarounds. At its core CVS is solid, if dated, software. There are other products I've heard good things about other packages, but I lack the experience with them to judge them. What I do know is that CVS is far and away superior to SourceSafe.
Search 2010 Gen Con events
I don't think you'll do any better than StarTeam (now sold via Borland). What is particularly good about StarTeam is that is was born and grew up on Windows, with Unix ports coming later. It feels and acts (for the most part) like a Windows application should -- which can hardly be said about creatures such as ClearCase and MKS.
There is a nice API to extend it to do new, nifty things. It has bug tracking. It has threaded discussion (which can be associated with items in the repository). You can reach it with a rich Win32 interface, with a web interface, with a java client, with the command line, etc. It can even tie into Explorer so that the entire repository can be mounted as a drive letter.
Visual Studio integration is rock solid and acts just like a VSS person would expect (minus the VSS bugs) -- which I cannot say about Jalindi Igloo (you get what you pay for). There are also intergrations for a number of other tools.
When they were their own company (StarBase), support was fantastic. I dunno if that changed under Borland. Also, in the StarBase days, they really did listen to users. If you made a reasonable case for a new feature, it usually made it into a future release.
On the Free and free side of the world, CVS on Windows using, say, cvsnt and WinCVS is not a bad combination, but once you've had a taste of a great tool like StarTeam, cvs leaves a LOT to be desired.
Right now, I am personally using cvsnt + WinCVS as budgets are tight, but StarTeam is on my short list of future capital expenditures.
Yes, it's true. This man has no dick.
I'm confused. I thought Firebird was a browser? How can two unrelated products have the same name? ;>)
I'm confused. I thought Firebird was a car? How can two unrelated products have the same name? ;>)
Will I retire or break 10K?
If you need to run cvs on Windows but need better security than pserver (which, like telnet, sends passwords in cleartext) you might look into Cygwin, which provides (essentially) a unix emulation layer for windows that includes cvs with ssh support.
Just make sure when you download Cygwin to download cvs, cygrunsrv and openssh 'cause you need them and you don't get them with the default core cygwin download.
Setting up is a little trickier than CVSNT, but you can find good instructions on ibm's developerWorks website.