Rom*_*her 4 cvs version-control visual-sourcesafe
看起来很多人在这里以及许多程序员wiki/blogs/ect.其他地方真的不喜欢VSS.很多人也非常不喜欢cvs.在许多地方,我听说过很多关于使用VSS或cvs是否更好或更差的意见,然后使用无源控制,请评价最差并解释原因!!!!! 你这样评价他们.随意在排名中投入自己糟糕的系统.如果您认为这取决于具体情况,请尝试解释导致不同排名的一些不同情景.
(注意:我看到很多关于什么是更好但很少更糟糕的讨论.)
第二个注意事项:虽然两个答案都很好,但我看起来不是很好的替代品而是更多的比较哪个更糟,更重要的是为什么!
根本没有源代码控制是最糟糕的选择,不需要讨论这个,这实际上不是一个选项.
我曾经使用过VSS一次(10年前),除了它有非常差的第三方工具支持之外,我只会提到存储库已经多次损坏(叹息).这肯定解释了为什么我根本不信任VSS并且更喜欢任何开源工具替代品(不能更糟).
如果我可以避免CVS,我会这样做.它有点工作,得到广泛支持,但确实缺乏重要的功能(最重要的是原子提交).但它有效(它比没有任何东西或VSS更好).
我在一个大项目中使用了Borland Starteam.非技术人员可能会欣赏它的客户端用户界面,但它对于开发人员来说缺乏太多重要的东西:没有很好的IDE集成(即使在JBuilder,有点讽刺),没有后提交钩子,没有高效的Java API(例如与Maven一起使用) ),该死的WAN等等加上一些其他非常烦人的故障(如UI不显示目录不在视图中).并不可怕,但有更好的解决方案.
ClearCase一直是一个糟糕的经历,非常适合反敏捷开发(让我发疯).PVCS也是如此(一场噩梦).我甚至不知道该说什么/从哪里开始:昂贵,沉重,差的工具等.购买这些工具的人不能使用它们,这是不可能的.
Subversion本来是CVS的继承者,一个更好的CVS(通过提供缺少的功能),被广泛使用,得到了许多工具的支持,仍然是非常值得推荐的.比以前的任何解决方案都好.
然后我们有像Mercurial,Git这样的DVCS ,它们功能更强大,但需要更多技能才能使用,而且仍然缺乏工具支持/集成(使用命令行不是每个人的选择).不过,它们是值得推荐的,具体取决于具体情况(不是每个人都需要更多的力量),Mercurial会有我的偏好,因为我觉得它更友好.
这张照片来自Martin Fowler的VersionControlTools页面:

他写这个页面时一定是读过我的想法:)