I have been evaluating different version control programs for my company for the last month or two. My current evaluation is that all of them are broken, although I hope to discover a good solution someday soon.
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.
Posted by
Jon Daley on
October 15, 2004, 2:42 pm
| Read 182827 times
Category
Programming:
[
first]
[
previous]
[
next]
[
newest]
Reviews:
[
first]
[
previous]
[
next]
[
newest]
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.
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?