Subversion 项目的初衷是为了替换现在开源社区最为流行的版本控制软件 CVS,在 CVS的功能的基础上有很多的提升同时也能较好的解决 CVS 系统的一些不足,这些提升主要包括以下的一些方面:
1. 目录、文件以及改名等元数据的版本化
不同于 CVS 只关心文件的内容以及文件是否存在,所有文件、目录的相关操作都是被版本化的,例如文件的改名、拷贝等等;
2. 提交操作是真正的原子操作
在 Subversion 中,提交操作是不可分割的,修订版本号是基于每次提交操作而非文件。提交日志被附加在每个修订版本中,而不是像 CVS 一样冗余的进行存储;
3. 可通过 Apache 服务器提供基于 WebDAV/DeltaV 协议的支持
该功能可使 Subversion 通过 Apache Web 服务器使资源库更加灵活的在网上进行共享,使其在互操作性上大大优于 CVS;
4. 可独立运行
当你不想使用 Apache 2.x 时候,你也可以使用 Subversion,它可以以守护进程或者是Windows 下的服务方式独立运行;
5. 分支(Branching)与标签(Tagging)操作是轻量级的;
6. 客户服务器端分层库结构设计;
7. 资源库可以采用数据库(BerkeleyDB)或者是使用特定格式的文件进行存储;
8. 更有效的对二进制文件进行处理。
更多的特性可以参照 Subversion 提供的文档(http://subversion.tigris.org/)
二. Subversion版本控制环境在Windows系统下的安装
在Windows下安装最为方便的办法就是下载安装程序,你可以到下面这个地址下载最新的二进制压缩版本svn-win32-1.2.3.zip ,地址是: http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 把该文件解压到一个目录,假定为 D:\subversion。
接下来新建一个存放项目的资源库目录,例如:D:\repository\project1,执行下面命令对这个项目目录进行初始化: D:\subversion\bin> svnadmin create D:\repository\project1
Subversion会在D:\repository\project1目录下生成很多的子目录以及文件,接下来我们需要设置该项目的用户信息以及 项目的基本信息,打开D:\repository\project1\conf\passwd文件,去掉[users]的注释,并添加用户如下:
### This file is an example password file for svnserve. |
Subversion使用了明码存储用户的口令,这应该算是它的一个不足。
接下来打开conf\svnserve.conf修改如下
[general] |
在做完这些基本的设置后就可以启动 Subversion 了,当然最好的方式就是让 Subversion 做为一个服务来运行,我们可以通过一个第三方的工具 SVNService 让 Subversion 以 Windows 服务的方式运行。
到 http://dark.clansoft.dk/~mbn/svnservice/ 下载SVNService.zip并把它解压到{Subversion}\bin目录下,通过运行 svnservice -install -d -r D:\repository\project1 ,执行的结果显示:SVNService installed. 这时候你可以在服务控制台中看到名为SVNService的服务,启动它就可以了,如果你不想用服务的方式启动Subversion,你可以运行 svnserve -d来启动Subversion。
要卸载SVNService服务,只需要运行 SVNService -remove 即可。
至此,Subversion已经安装成功,我们将在接下来的一节中介绍如何通过各种客户端对资源库进行操作。
来源:http://www.ibm.com/developerworks/cn/opensource/os-subversion/