CVS
Good things
- Fast
- Wide spread (many knows how to use it and it has 3rd party tools (for example Eclipse plugin integrated in Eclipse)).
- Does not version directories. Probably that biggest design flaw.
Good things
- Version directories
- Relatively wide spread.
- No native branches or tags. I mean what were they thinking? "Everything is a directory"? Is there someone that really likes and uses this so called "feature"? Everybody I know follows the de-facto standard "trunk", "tags", "branches".
- Late double directed merge tracking (available only after 1.5). A bit too late I might say...
Good things
- The mother of version control. Has it all. Did it all right.
- Version tree and merge tracker. Two of the best tools a developer knows.
- Is so expensive that it is ridiculous. 44000 € excluding consumption tax. Can anybody afford it?
- It has some learning curve to learn how the config spec works
My next version control software?
I first used clear case in 2004. It was some year old then so it has probably been working the way I'm used to a little bit longer. I really cannot understand how the open source world has not been able to create a better (or equally good) version control system in this time.
I have been thinking on which version control software I should use. I really don't know. I'm leaning towards Git or Mercurial but I'm not sure. Here is my feature wish list
- Tags and branches should exist natively and all the tools should have good support for them.
- There should exist a good version tree that can display all the branches and the merges between the branches.
- There should exist a merge tool so branches can easily be merged
- It should be free (I don't care if it's open source, It should not cost me any money)
- It should exist a plugin in Eclipse for it (and preferably in other IDE:s as well).
- It should be wide spread so there is a high acceptance and support for it.
- Focus on usability. Usability is so important! And developers has a tendency to forget that...
I have to add a few goods and bads:
ReplyDeleteCVS and SVN
- The inability to use support baselines. You cannot work on a branch and use the underlying branch as a baseline. Instead, you will have to merge everything from the underlying branch to be able to use it, if the baseline changes. This makes branched development a P.I.A. for these version controll systems.
ClearCase
+ The config spec allows flexible support for baselining and branched development
+ Excellent visual tools (version tree, merge manager)