oldtom 发表于 2010-11-16 14:36:14

值得期待的SVN 2.0!

根据 Subversion 团队的乐观估计, 跳票了大半年的 1.7 版本很有可能在 2010 年上半年发布. 自从 SVN 被 Apache 招到麾下, 代码更新速度明显呈加速趋势.

1.7 相对 1.6 的变化相当大, 我比较关注的新特性包括: 新的 HTTPv2 协议, 期待已久的永久删除, 下一代工作副本 (WC-NG)

新的 HTTPv2 协议

如果你曾经对比过 svnserve 和 mod_svn 不同部署方式下的访问速度, 会明显感觉到基于 HTTP WebDAV 协议效率不佳 (比 svn:// 协议至少慢上 4 倍).

效率低下最主要的因素:

HTTP 是无状态协议, 一次完整 Subversion 请求会被 mod_svn 拆分成几十甚至上百次独立 HTTP 请求.
mod_svn 严格遵循 HTTP WebDAV 协议规范, 包括一些导致效率低下, 而很少能用上的功能. Subversion 为了支持所有 WebDAV 客户端能对 SVN 库进行操作而导致性能降低, 实在是得不偿失 (很少有人放着 SVN 客户端不用, 却用 Windows Xp 的 “Web 文件夹” 来操作 Subversion 库).
Subversion 分别提出了相应的解决方案:

异步多路复用的客户端 HTTP 库 serf 将取代 neon 库成为默认选项, 某些情况下, 提速能达到 4 倍.
新的 HTTPv2 协议, 专为性能和可读性打造, 放弃 “古老” / 复杂 / 低效的 DeltaV 标准.
期待已久的永久删除

1.7 之前的 Subversion 没有后悔药可以吃 — 一旦有成员上传了编译过程临时文件, 这些废料将伴随整个库的生存周期.

svn dump 过滤命令看似可以解决这个问题, 但实际上可操作性极差. 随着库的总大小增长, 永久删除文件的成本加速上升.

1.7 的 “Obliterate” 特性非常值得期待, 让某些误操作不再是整个团队的负担:

支持 永久删除 特定文件的指定修订版本
支持 永久删除 特定目录的指定修订版本
支持 永久删除 特定文件的所有修订版本 (即让这个文件彻底消失)
但是不支持永久删除 文件中的指定内容
下一代工作副本 (WC-NG)

这是 1.7 的重头戏, 这项特性意味着 SVN 在慢慢向 Git / Mercurial / Bazaar 等 DVCS 靠拢. WC-NG 是 离线提交 和其它 DVCS 特性的基础工作, 我们会在未来的 2.0 版本中, 看到这一功能的优势被放大.

用户可见的主要影响包括:

集中式的工作副本元数据 (1.6 及其以前版本, SVN 会在工作副本的每个目录下放置一个 .svn 文件夹存放元数据信息, 相当恶心)
使用 SQLite 存储元数据
解决文件名大小写的问题
就 1.7 版本而言, 还没有提供 离线提交 的功能. 离线提交 对开发人员的体验改善应该会相当明显, 期待 2.0 版本的到来.

oldtom 发表于 2010-11-16 14:39:19

这几天一直在折腾GIT和svn,希望能够兼容使用GIT和SVN。搞的很是郁闷。
很想用类似GIT的这种DVCS,这样,出差时,或者在家里也能有效管理代码,可惜GIT在WINDOWS上面还是有点不好使,十分的郁闷。只能期待SVN2.0了。

theophilus 发表于 2010-11-16 15:11:42

Mercurial也很不错

使用git想继续用svn代码库可以用git-svn就可以了。

oldtom 发表于 2010-11-16 16:56:33

GIT 中文目录,中文文件名有点问题。

yajira 发表于 2010-11-17 22:33:54

根据 Subversion 团队的乐观估计, 跳票了大半年的 1.7 版本很有可能在 2010 年上半年发布. 自从 SVN 被 Apache 招到麾下, 代码更新速度明显呈加速趋势.

但是现在都快2011了啊
页: [1]
查看完整版本: 值得期待的SVN 2.0!