written on Friday, March 12, 2010
根据 Subversion 团队的乐观估计, 跳票了大半年的 1.7 版本很有可能在 2010 年上半年发布. 自从 SVN 被 Apache 招到麾下, 代码更新速度明显呈加速趋势.
1.7 相对 1.6 的变化相当大, 我比较关注的新特性包括: 新的 HTTPv2 协议, 期待已久的永久删除, 下一代工作副本 (WC-NG)
如果你曾经对比过 svnserve 和 mod_svn 不同部署方式下的访问速度, 会明显感觉到基于 HTTP WebDAV 协议效率不佳 (比 svn:// 协议至少慢上 4 倍).
效率低下最主要的因素:
Subversion 分别提出了相应的解决方案:
1.7 之前的 Subversion 没有后悔药可以吃 -- 一旦有成员上传了编译过程临时文件, 这些废料将伴随整个库的生存周期.
svn dump 过滤命令看似可以解决这个问题, 但实际上可操作性极差. 随着库的总大小增长, 永久删除文件的成本加速上升.
1.7 的 "Obliterate" 特性非常值得期待, 让某些误操作不再是整个团队的负担:
这是 1.7 的重头戏, 这项特性意味着 SVN 在慢慢向 Git / Mercurial / Bazaar 等 DVCS 靠拢. WC-NG 是 离线提交 和其它 DVCS 特性的基础工作, 我们会在未来的 2.0 版本中, 看到这一功能的优势被放大.
用户可见的主要影响包括:
就 1.7 版本而言, 还没有提供 离线提交 的功能. 离线提交 对开发人员的体验改善应该会相当明显, 期待 2.0 版本的到来.
我之前 翻译过的一篇论文, 主题是调查现在开源项目向 DVCS 迁移的趋势, 但截止到今天 (2010-03-12) 论文作者尚未发表对于企业应用中 DVCS 迁移成本和潜在风险的相关文章.
对于内部企业开发, 如果网络带宽 (内部或外部) 和磁盘响应速度不是瓶颈, 坚持 SVN 阵营是个不错的选择. 2.0 版本会更多的融入 DVCS 元素, 相信开发体验也将更友好.