1. 技术内幕
- Subversion
- 集中式版本控制的典型代表。CVS 的最佳替代者,是开源软件安装量最大的版本控制系统。是开源软件自身生存和继续发展的基础软件。
- Bazaar
- 与 Ubuntu 一起成长的分布式版本控制系统。实现卖主分支另外的方法,下一代个人版本控制系统。
- SVK
- 用SVK这一在 SVN 上实现的分布式管理系统,曾经作为 Subversion 分布部署的最佳选择,今天已经显得过时了。我们有更好的跨地域版本控制的方案。
- Eclipse + Subclipse
- 在最流行的集成开发工具上使用最流行的版本控制工具。
- TortoiseSVN
- 命令行
2. 分布式还是集中式版本控制
分布式版本控制系统已成爆发之势,越来越多的开源软件使用诸如 GNU arch, Bazaar, Mercurial, Git, SVK等分布式版本控制系统。 这一方面是开源软件开发的本质(全部源码公开,跨地域的开发团队)决定的,另一方面是管理角度(服务器扩展性,基于信任链的代码提交)。
我们认为了解分布式版本控制系统,对于程序员是必要的,因为:
- 从开源社区汲取营养的需要;
- 对第三方只读源码库维护的需要;
- 下一代个人版本控制工具;
我们认为“集中式”版本控制系统,仍然是商业企业软件开发中的首选,因为是企业对授权和集中管理的需要。 即使有跨地域开发的需要,我们也可以通过镜像、代理等方式实现 Subversion 的高效运行。
比较项目
|
分布式(bzr)
|
集中式(svn)
|
性能
|
服务器扩展能力
|
★★★
|
★
|
网络带宽占用
|
☆
|
☆☆☆
|
本地保存的完整版本历史
|
★★★
|
-
|
安全
|
历史版本的安全验证
|
★★★
|
-
|
数据安全(BCP)
|
★★★
|
★
|
分支操作
|
代码合并(merge)能力
|
★★★
|
★★
|
分支管理
|
★★★
|
★★★
|
分支建立速度
|
★
|
★★★
|
用户界面
|
使用平台广泛性
|
★★★
|
★★★
|
命令行可用性
|
★★★
|
★★★
|
Windows图形界面
|
★
|
★★★
|
权限管理
|
统一的用户帐号
|
-
|
★★★
|
针对目录的 Checkout
|
-
|
★★★
|
目录授权
|
-
|
★★★
|
分支授权
|
★
|
★★★
|
其他
|
远程版本库复制
|
★★★
|
★★★
|
离线提交
|
★★★
|
-
|
3. SVN 和 CVS 的对照
我们选择 Subversion(SVN) 作为企业版本控制工具的首选,而不是 CVS。不是因为我们使用 Subversion 时间更久,也不是因为我们对 Subversion 更有感情。恰恰相反,CVS 很早就已经渗透到我们的血液中。关于 CVS 可以参考我们这个文档: 《CVS 版本控制》。
多年的使用 CVS 的开发经验,我们深感 CVS 在使用和管理上的不足。下面是 SVN 和 CVS 的对照。
比较项目
|
CVS
|
SVN
|
权限控制
|
是否依赖系统帐号
|
依赖
|
不依赖
|
可否对分支授权
|
否
|
是
|
是否支持LDAP认证
|
否
|
是
|
图形化帐号管理
|
否
|
是(集中管理平台)
|
用户可否获取忘记口令,修改口令
|
否
|
是(集中管理平台)
|
目录,文件名变更
|
否
|
是
|
分支管理
|
创建分支时间
|
耗时*
|
快
|
分支可见、查询
|
难
|
易
|
二进制文件
|
二进制优化
|
否
|
是
|
二进制文件标识
|
手工
|
自动
|
二进制文件(图形文件)被破坏
|
易破坏
|
不易破坏
|
事物处理
|
量子提交
|
否
|
是
|
修改提交说明
|
单个文件
|
是
|
换行符
|
可否指定换行符类型
|
否
|
是
|
检查换行符设定,避免跨平台开发带来的混乱
|
否
|
是
|
功能扩展
|
CVSROOT
|
hooks 脚本
|
网络带宽
|
网络带宽占用
|
高
|
低
|
脱机命令
|
否
|
部分
|
4. SVN 和 商业版本控制系统的对照
那么商业的版本控制工具如何呢?我们要大声告诉你,不要!不要把您的核心资产——“代码”让他人绑架!
比较项目
|
某商业软件
|
SVN
|
服务器端存储
|
是否依赖数据库(额外的管理负担)
|
依赖
|
不依赖
|
数据存储格式是否开放
|
否
|
是
|
是否可以将版本库导出?以便重建、导入其他项目、分发给第三方或者配置管理软件切换。
|
否
|
是
|
是否可以对服务器端存储进行整理
|
否
|
是
|
是否可以彻底删除配置项
|
否
|
是*
|
可否通过插件进行功能扩展?
|
否
|
是
|
命令行
|
命令行功能是否完备?以便实现工作自动化
|
否
|
是
|
是否可以集成到自动编译(nightly build)系统?
|
否
|
是
|
文件状态保持
|
客户端本地是否有配置文件以保持状态?
|
否
|
是
|
是否依靠服务器端进行状态保持?
|
是
|
否
|
客户端是否可以脱机运行?
|
否
|
是
|
工具整合
|
是否可以和资源管理器整合?
|
否
|
是
|
是否有 Eclipse 插件?
|
否
|
是
|
成本
|
软件本身成本
|
高
|
低
|
培训成本
|
高
|
低
|
5. 群英汇:功能扩展
-
与“开源速递·集中管理”平台整合;
- Hooks 插件扩展;
- 改进的二进制文件和文件换行符属性冲突检查;
- Subversion 管理员命令行;
- 其他 bugfix ...
6. 为什么选择群英汇
7. 相关文档
posted on 2008-05-29 11:27
☜♥☞MengChuChen 阅读(493)
评论(0) 编辑 收藏 所属分类:
VSS