Version Control Comparison – October 15, 2004
Serena's Version Manager (PVCS)
I have spent a lot of time with Version Manager, and it has a number of deficiencies. Unfortunately, this is the product my company uses. They originally switched to VM because has client apps on mac, unix and windows. However, there are now a number of products that support that, so that is no longer an advantage.
For some reason, they released 7 versions of their product before they figured out that they shouldn't send two or three copies of the entire archive between the client and server while doing a transaction. They claim this is a form of reliability. Hrm. Version 8 now sends smaller amounts of data, which is good, but it is still slower than any other product I tried. They say if you care about speed, you should use their INET server, where you then use Internet Explorer (only, it doesn't support any other browser) to access your data, with limited features.
It does share files between projects quite nicely, and does that better than most. It defaults to the lock-modify-unlock model, but can be used in copy-modify-merge as well, although I wouldn't trust their diff tool at all. It doesn't support Unicode. It cannot track deletions or moving of files, and if you do move a file using their GUI tool, it will move it incorrectly, and if you have to recreate the project if something gets screwed up, it will move the file back to the old location. It cannot integrate with Visual Studio, if you use multiple projects in one VS project. Their archive files, while there is a nice one-to-one ratio of archive files to work files, are in a binary format, and I have had a number of archive files be destroyed, and AnswerLine (their technical support) had no explanation of why it happened, or any solution for recovering the data.
There was a large change from version 7.5 to version 8.0, and that upgrade is not smooth at all. I spent 12 hours yesterday (after spending a couple weeks with the new product) to try to convert a couple projects for real production use. I ended up spending a half hour with AnswerLine, trying to get one project upgraded. It looked like it worked, but it ended being broken, and actually still referring to old unconverted data, so when I removed the "old" data, everything stopped working. Their command-line tools do not parse spaces and other "funny" characters in a consistent way, and so escaping them are close to impossible. Thus, their claim that their tool does not require an consultant to setup the server is false. Remember this upgrade was exactly that, an upgrade between versions of their own software and they are unable to figure out how to do it correctly. Their solution is spend days finding the shared files, copying them over specially, and recreating the shared files. It is unacceptable for me to have the database down for a week to upgrade it.
Subversion (SVN)
I have only used Subversion a little, but server set up is quite easy and fast. They put a high priority on data integrity, and I have read from a number of long-term users that it hasn't ever had an unrecoverable error. They use journaling with a Berkeley database by default, and it supposedly can recreate any transaction, so unless you get a magnet near your harddrive, you should be alright. The developers brag that no one has ever lost any data with their product.
It also supports hot backups, which most products do not. A hot backup is when you can backup the server without shutting it down.
There are two big problems that keep me from using it. It is unable to share files between projects, you have to have your shared code in a separate directory (svn:externals), and even then, it treats that code differently, and so you have to explicitly take action on those directories, rather than recursively acting on everything, like the rest of the directories.
It also has trouble with platforms that have case-insensitive file systems, such as Windows. It can easily erase valid data if the case of a file changes. Since Windows will sometimes change the case, such as capitalizing the first letter, this is an easy problem to run into. Since they track file moving and deletions, presumably you can get the data back, but I am sure it is a pain to have to do that more than once or twice.
It will support file-locking shortly, but currently uses the copy-modify-merge model, which makes some people nervous. It uses a database format, which means you need their tools to get your data back. Most products do that, so they are all making it harder to recover together.
It supports binary diffs, which is excellent. Most other tools only support text diffs, and default to binary, so you have to explicitly tell it if an unknown extension is a text file.
It is extremely fast at the expense of client disk space. I did some tests with a project that was 100MB, and with Version Manager, it took 200 seconds to check the server to see if there were any updates (when there weren't any). Under SVN, it took 4 seconds. Pretty impressive. It actually doesn't use the network for some operations, such as checking to see what files have been modified locally, reverting your changes back to the latest version, and I think a couple more. It tracks file deletions and moves, so that when you go back to get an old version of the project, it will have the correct files and directories in place.
CVS and PVCS are unable to do that and silently fail.
Concurrent Versioning System (CVS)
Old standby. I have used it quite a bit for personal use, but never more than a couple developers. It has worked quite well for my purposes. And I don't care about branching, and renaming/moving/file-sharing, which lots of people complain about. I think it might be a little weak for a larger group of developers, although I do know some groups that use it and are perfectly happy with it.
It is pretty good for speed, although most of my work has been local. I did use it over AFS a while back and the performance was pretty poor, but that might have been my AFS client's fault. I have used it securely to SourceForge and it has worked pretty well.
Commercial companies always try scare you by telling you about how bad it is for corrupting files, but I haven't ever heard a user say that. It has one archive file per "real" file, so you can go in to the CVSROOT and modify the files as you like. It isn't entirely easy, but one could imagine editing the archive file if it contains text. If you were backing up a Word document, it would probably be hard to recover your data if it did break.
SourceSafe (VSS)
The database can be easily corrupted without your knowledge, due to bugs in the client. I have run the "analyze and fix" utility each time, and the data was recovered, at least as far as I can tell, without doing exhaustive checking. People generally say it has a 2GB limit for the database. It has this weird hashtable/filesystem way of storing the files, that I just don't like. I used it at my last company and it was pretty good. If I knew about branching then, it would have been a little better, although I hear it doesn't support anything fancy.
Contrary to popular opinion, if you have Microsoft's Universal Subscription, that does not gave you license to use SourceSafe for free. It is slow over a VPN connection, but SourceGear makes a SourceOffSite utility that is supposed to be really good, although in the time I have adminstrated it (about a month, for two users), it has crashed a couple of times.
BitKeeper
I haven't used this at all yet. People generally say it is really good, but really expensive, and the owner has made some in the open source community mad, due to the restrictive (albeit pseudo-free) license. I have a request in for a quote, but haven't heard back from them yet.
Perforce
The biggest gripe I have with Perforce is that you have to get used to a different mindset of how you think about the projects. I have not used it enough or read about it to be able to say anything more.
SourceVault
I have only tried out their demo server, so I can't comment too much on it. It seems nice, and they say it is better than VSS. I haven't looked up customer reviews yet.
Questions? Have Anything to Add?
(your comments will be published on this site - click here for private questions)
The consultant failed to get his demo to work in a number of different ways, even though his demo is a vmware/completely sanitized version of everything, so you would expect everything to work perfectly.
He did quit his job two days later, so perhaps he was a bad example of Serena's support.
We ended up buying it anyway, since it is arguably a bigger pain to switch to someone else, and we have already invested so much time in Serena's products.
There are a number of bugs that they don't tell you about until you call up their support line, so my boss has told me to call support every time there is a hint of anything, since we are paying for support, and we have wasted so much time on their products.
The trick is to get past their first tier of support, where the people don't really know anything, and talk to you for ten minutes trying to find keywords in the knowlege base. I have had their first level of support say a couple times, "well, if what you say is true, than I have been telling customers incorrect information for years".
Eventually, I step them through the bug and they admit that they had no idea it worked like that, and promise to talk to a developer and get back to me, but so far no one has ever called back.
I did see one of my bugs actually get entered (I think), but it still hasn't been fixed. Serena recommends not using their latest release or the previous release due to bugs, but to go back two releases to get a more stable version. Sounds like they need a quality assurance team or something...
The sales guy who helped me out through the whole process (as well as getting me the names of the so-called tier 2 support) said he liked my marketing quote:
Serena: we suck the least.
As it seems that all version manager tools really don't work all that well, so you just have to get used to the bugs, and figure out ways to workaround them.
I hear other people don't have this problem, so it might somehow be a problem with our machine, but the machine hardly gets used, so I wouldn't think that we are being all that hard on the system.
We have continued use of PVCS, though we are six months away from having to plunk down the annual support costs, so we need to think about things again. It is hard to switch apps, since the users get used to the deficiencies, and don't want to learn new ones. If I were starting out fresh, I would use subversion. I use that for a couple projects, both by myself, and with a handful of people (and I hear it works fine with large numbers of users as well). The admin is easy. There is a windows GUI integration tool, to make people happy (PVCS does not have one; the one they do have only works within Visual Studio if you are only trying to open up one project database at a time). Subversion doesn't allow cross project sharing of files, at least not easily. That is the biggest (only?) reason for us to not use it. To use it, we would need to restructure our development directories, and people would not like that.
We also don't use the TrackerLink stuff, it looks like it is a pain to me.
I do know TrackerLink is supposed to be able to work with SourceSafe as well.
(I am in the middle of trying to get Tracker to speed up, and having a reasonable amount of success, although I keep getting directed to non-US support centers, where the people can hardly speak English, so it is making the process more frustrating than it should be).
I use Mantis for a project, and I think as long as there is someone who could work on customizing it, you could get it working well, although not the linkage part.
I also looked at Bugzilla, but thought it was too techy for our users to comfortably use. It is also more aimed at email use, rather than a direct client.
I believe that it now supports exclusive lock mode, but it is so great to not use it any more.
I would like to know which management tool is better,IS VSS or CVS?
I would definitely choose svn over CVS. I don't know of any reason to use CVS - maybe if you were the only developer using it, you might pick CVS - though I use subversion on projects where I am the only developer.
I don't know what IS is. I have heard people say VSS is good for small projects, under a gig or two in one database. I think Microsoft says no more than 4 gigs.
My full-time company is switching to subversion right now. RapidSVN, one of the GUI clients for subversion is not as good as I thought it would be. The command line is the best, followed by Tortoise.
Hi.
I`m software consultant and I´m making an evaluation of a software of version control. Which of the following softwares has a better operation?
******Products from $200-500 per license******
CS-RCS Pro
Vault
CS-RCS Browser
Team Coherence Pro
Visual SourceSafe
*****Products ranging from $500 - $1000 per license*****************
Evolution
SurroundSCM
Team Coherence Enterprise
Firefly
Borland Starteam
Perforce
SpectrumSCM
Accurev Pro
*********Products over $1000 per license*******
Razor
Borland Starteam Enterprise
Bitkeeper
Accurev Enterprise
Serena Changeman Pro
How is the products SERENA?.
Do you can help me?
I think mostly you should read the stuff I already wrote, did you do that?
I think you should consider open source products as well - is there a reason you didn't list them?
Did Serena change their product name yet again? They sure have a strange business model. They historically have not been able to support their products well when they switched from completely different products every year or two. Their first level support were completely useless, and you always had to get to one of three people who actually knew the product better than I did. We have left Serena's software for our new products, and are only using it for the old products until they die off.
Serena's product certainly do not deserve to be compared to your upper-end products. I have heard very good things about Bitkeeper, since the author stole the application from Sun (I think that is the company, haven't thought about it in a long time) when he worked there. If we could just convince Sun to open source/release their internal software, we would all do really well. They have not done that, I am not sure why - they should at least sell it, if they aren't willing to give it away. I haven't ever met anyone who has used it who would ever use anything else.
Good post...quite useful...thank you...
Quick question:
You have mentioned that PVCS doesn't support unicode; but on the contrary Serena support team is saying they do support it;
I am unsure whom to believe; could you pls explain your position.
Thanks
I have only used versions up to 8.0.2.3, so it is possible that they now support it.
I talked to their second-tier support (I think only one of the original three people who actually know the product are left) they said that I was getting such huge archive files because PVCS didn't support unicode, and it wouldn't do diffs on the files, because of the file extension was .keyfile, but if I manually told it to do diffs by adding that extension, it would keep the archive files smaller. So, I added .keyfile to the list of diffable outputs, and the archive files stayed smaller, but the diff tool could not output any useful diffs, and just reported that it was a binary file, and couldn't show me a diff. So, that is what I mean when I say they don't support unicode. The files check in and out fine, and you can get old revisions, etc. It behaves exactly the way you would expect it to treat a .jpg, ie. no diffs.
I can't remember if the large archive problem was before or after the upgrade to 8.0 (and the associated splitting of the archives), so perhaps in the new scheme, the archive file doesn't double in size on each commit, but certainly it still doesn't diff the unicode file.
For what it is worth, we now use TortoiseSVN as the client for subversion, and TortoiseMerge doesn't understand unicode either, but you can tell it to use WinMerge for .keyfile files, and then it works, though when there are conflicts, there tends to be trouble (strange binary characters show up in the file, rather than the conflict markers - haven't investigated that enough yet, most of our files aren't unicode, so it hasn't been enough of an issue to worry about.
I see someone mentioned Accurev above. Based on my experience you would be hard pressed to find a better tool that is as stable and easy to administer as it is elegant and powerful. The price isn't too bad either, but you get a whole lot more with it than you would with older file-based branch and label tools. Check out its stream concept sometime.
http://www.cmcrossroads.com/product-reviews/product-reviews/accurev--4.5-%11-the-next-generation-in-scm.html
http://www.cmcrossroads.com/option,com_smf/Itemid,177/topic,70170.0.html
Good luck to all of us!
Srini
Srini: I see other folks have asked if you work for Accurev, but you said that you don't... I guess you just really, really like their software to post on so many different blogs and web pages about their product.
You should probably explain who you are in your posts.
I did see your various troubles in configuring ClearCase, which probably influences your decision somewhat.
For me, I have found subversion to be excellent, and so after three or four years, or whatever it has been, I continue to think subversion is the best one out there. I look forward to the next release that will handle merges even better than it already does.
I introduced subversion at my previous company, and while there was some resistance to the change, everyone is now used to it, and going full steam ahead.
They are sending a guy on Wednesday to see what he can figure out. I guess I am not holding my breath, but it would be nice if they get it working, and this silly version control software search can be over.
BitKeeper hasn't gotten back to me. My guess is that our company is too small for them to deal with.