1. 与其他工具的对比
svn相对cvs是有明显优势的,因为svn的设计目标之一就是“一个更好的cvs”。而且,从众多开源项目的反映看,它也确实达到了这个目标:06年,最大的开源网站SourceForge开始支持svn;KDE和GNOME的开发团队也已经换用svn;如果大家多注意一下的话,还会发现更多著名的开源项目使用了svn。
ClearCase我没有实际使用过,按说应该无权评价。不过,我没有用过它的原因是因为它太难用了,曾经学过几天,但后来觉得太过复杂,就转向vss了。相比之下,svn是比较简单的,我大概花了一两天的时间就可以完成基本操作了,用的比较熟练也不过两周。另外就是ClearCase要钱,而svn是免费的。
下表是这几种工具的对比,列出的功能都是我比较关心的。更详细的比较,大家可以看看http://better-scm.berlios.de/comparison/。
项目 |
Vss |
Clearcase |
Cvs |
svn |
文件/目录的重命名或移动 |
是? |
是 |
否 |
是 |
原子提交 |
否 |
是 |
否 |
是 |
变更集 |
否 |
可间接实现 |
否 |
是 |
中文支持 |
是 |
未知 |
差 |
是 |
visual studio集成 |
是 |
是 |
是 |
是 |
eclipse集成 |
未知 |
未知 |
是 |
是 |
http访问 |
8.0支持 |
差 |
是 |
是 |
离线操作 |
差 |
未知 |
是 |
是 |
权限管理 |
是 |
是 |
较差 |
是 |
易用性 |
简单 |
复杂 |
较简单 |
较简单 |
授权 |
商业 |
商业 |
GPL |
Apache/BSD |
2. svn能解决哪些问题
2.1. 获取某个以前的版本
2.2. 自动递增版本号
前面已经说过,在svn中,每次签入(提交)都会为整个代码库生产一个版本。生成它的同时,svn还会为其指定一个递增的修订号,利用这个修订号和一个配套的工具(SubWCRev),就可以做到自动生成版本号了。
2.3. 变更集
2.4. 离线操作
3. 相关工具和网站
AnkhSvn:一个visual studio的svn插件,支持svn的大部分功能,并且比较好用。
VisualSvn:也是一个visual studio的svn插件,应该比AnkhSvn好一些,不过它是商业软件。
Subclipse:eclipse的svn插件,也已经很成熟,据说使用风格和eclipse自带的cvs插件非常像。
p4merge:这是一个文件对比/合并工具,TortoiseSvn自带的文件比较工具还比较好用,但合并工具就差点了,起码没有vss的好用。能找到的工具大多只支持双视图合并。p4merge则能支持三视图甚至四视图,用起来方便很多。开发这个工具的公司也是做配置管理软件的,不过这个公司比较好,只对它的服务器端收费,其他工具都可以免费用。
http://www.tigris.org/:这是subversion、TortoiseSvn、AnkhSvn以及其它众多开源软件开发管理工具的官方站点。
http://www.subversion.org.cn/:svn中文网站。
http://www.iusesvn.com/:也是一个svn的中文网站,内容和上一个有很多是重复的。