因工作的需要,对流行的几种版本控制工具做了些对比:
1. cvs
cvs无疑是个老资格的工具了,而且大多数的open source软件都是用cvs进行版本管理的. 分支功能和cvs的自动合并等都是比较强大的地方.但这东西的命令行操作拒人于千里之外.通常开发人员脑子里装的东西已经够多了,如果在check in一个版本的时候还要输入一长串路径,文件名...我最讨厌在工作的时候频繁切换脑中的context,什么好的idea都给打断啦. 虽然说有wincvs的client,但这东西实在不算是先进.
2. SubVersion
cvs已经进入了系统维护阶段,原来的主力人马搞了这个SubVersion. 据说改用了DB存储(据说支持提交过程的事务特性,我想应该就是提交等过程中假如有部分操作失败,那么可以完整的rollback整个操作吧..), 另外文件夹也可以进行版本控制.
还能够直接对文件进行改名、删除等操作,这些操作也是history的一部分....等等. 我只是想要一个轻量级的version control system,这东西的文档铺天盖地,似乎太繁杂了.
不过这个工具能通过WEB进行部分管理,这是我挺感兴趣的.但我想如果要通过WEB做到很完整的功能,肯定要通过嵌入ActiveX控件等方法才能做到.但这个东西本身很大部分就不是windows平台的,所以web的功能应该也就很有限了.
3.VS.net 2005的团队开发工具....
毫无了解,因为没装过这个Beta1的东西,不想搞到自己的电脑一团糟.....
4. VSS Remoting
VSS本身是个很烂的东西,在LAN里面工作还勉强凑合能用.真不知道为什么MS会推出这样的一个半成品. 和VisualStudio号称能集成工作,其实真正用起来问题多得很. 我基本是不会把它和IDE集合到一起用的. VSS Remoting解决了internet上使用VSS的困难, 我猜想它是用automation的方法操作服务器和客户端的VSS,据说走的是HTTP协议,并且加密. 试用了一下,发现还可以. 但是他的试用版只能有一个帐号同时登录. 每个license的价格是128$(5个以下时).算了,没空再去disassemble对付这些东西,一个帐号就一个帐号吧,反正三四个人之间轮流登录使用还是可以的. Yeah, it is my choice~~~
其他商业工具了解的就很少了,我想一般中小公司都不会斥资购买这些按昂贵的辅助开发工具吧.
我需要的那种B/S方式(依靠ActiveX控件或者JavaApplet来增强实现client的功能) 的完善的版本控制工具一直找不到,真是可惜~~