- 本站大部分内容从网上收集,收集目的仅供研究、学习。涉及版权或不希望收录您的文章请您及时与我联系。
- 本站IM群,请自行选择。请各位朋友按照自己喜好加入。加入群后请及时发言,防止被清理。谢谢您的合作!!!
- QQ群:Y①WEB开发(ASP.NET)号码:7351660 QQ群:Y②WEB开发(ASP+.NET)号码:11864905
- QQ群:Y③WEB开发(DIV+CSS)号码:16610506 QQ群:Y④WEB开发(JS+AJAX)号码:16143998
- QQ群:Y⑤WEB开发(新手)号码:12777715 MSN群:yaosansi[at]126.com
原文:http://www.infoq.com/cn/news/2008/06/subversion_15
Subversion是一款成熟的开源版本控制工具,广泛应用于众多开源项目中,如Apache软件组织、KDE、GNOME、Free Pascal、GCC、Python、Django、Ruby、Mono。它刚刚发布了1.5版。它的设计初衷是用来替代CVS——很多人都觉得后者有着很严重的限制。
虽然Subversion引发了遍及各地的“分支模型”之战,它相对于CVS还是有着巨大的改进。一些实践者列出了它的优点:
- 重命名目录和文件:重新组织代码变得轻而易举,也不会丢失版本跟踪信息。
- 检出的代码目录很“干净”(没有CVS目录)。
- 在文件缓存功能的帮助下,很多工作都可以在“离线”的状态完成。
- 原子提交。
- 每次提交都有日志。
- 速度有所提升。
- 可以更好的处理BIN(二进制)文件。
- 由积极的开发者组成的社区。
The Big Picture from the Subversion Developer Intro
在1.5版本中,Subversion为用户带来了几个新特性,其中包括:
- 跟踪合并历史:用户可以知道哪些变更在哪个分支上进行了合并。有了这个功能以后,用户在几个分支间(如1.0,1.1和主干)同步时就可以少花一些精力了。
- 稀疏检出(Sparse checkouts):开发人员可以从庞大的源代码树上只选择某几个子集检出。
- 交互式的冲突解决方案:可以使用命令行客户端来解决冲突,其API也为其他类型的客户端提供了支持。
- 支持变更列表:开发人员可以把多组文件命名成一个变更列表。如果有人需要同时解决多个问题,这个功能就很有用了。
- 复制和移动 操作得到了改善。
Eclipse的Subversion插件(Subclipse)也发布了新版本。其他的客户端还包括:TortiseSVN(Windows shell扩展)、RapidSVN(一个富客户端)、AnkhSVN (一个Visual Studio插件)。
注1:在Subversion中文站上,可以获得Subversion的更多信息。
注2:在InfoQ英文站上,有读者对原文中的某些段落进行了批驳:
“检出的代码目录很‘干净’(没有CVS目录)” ——这句话错的没边了,".svn"目录就不是目录了?把“.svn”换成“cvs”不就一样了吗?
“在文件缓存功能的帮助下,很多工作都可以在“离线”的状态完成”——CVS也没有“连线”的状态。而且举个例子来看,这里说的“更多状态”也没有包括查看文件日志的功能。所以它根本就不能像Git一样,完全离线工作。
“开发人员可以从庞大的源代码树上只选择某几个子集检出”——这句描述很有歧义。面对庞大的源代码树,开发人员需要把他们自己的代码树放到不同的目录下, 而且Subversion一直都可以只检出单个目录。它的新功能的真正含义是,如果你只需要一个目录中的某个部分,而不是全部,你就可以进行非递归式的检 出。
查看英文原文:Subversion 1.5 released
订阅本站,阅读更多文章