1 什么是SVN?
SVN全称为Subversion, 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库 (repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。 许多人会把版本控制系統想像成某种 “时光机器”。
某些版本控制系統也是 SCM(software configuration management) 系统。 这些系統是特別设计来管理大量代码的, 而且具有许多专门针对软件开发的功能,像通俗易懂的程序语言, 或是提供编译软件的工作。 不过Subversion 并不是这样的系统; 它是一个通用的系统, 可用来管理任何类型的文件, 其中包括了程序源码。
版本控制是管理数据变更的一种技术。对于开发人员来说,它已经成为不可或缺的工具,因为他们经常修改软件代码,产生部分的变更,然后第二天再取消所有的变更。想象有一群程序员同时工作的情况你就能理解,为什么需要一个良好的系统来管理可能出现的混乱。
2 SVN服务器端安装与配置
2.1安装Apache
本安装基于windows操作平台,因为要搭建此项目管理服务器,所以必须要先安装Apache服务器。
(1)下载Apache
注意:Apache低于2.0.54的Windows版本的存在编译问题,不能与Subversion 1.2一起工作。2.2.X目前不能很好支持SVN 1.4.3。所以当前建议下载Apache 2.0.63版本。其他版本请在此http://httpd.apache.org/download.cgi下载。
(2)安装
下载完成后运行apache_2.0.63-win32-x86-no_ssl.msi。设置系统信息,在Network Domain下填入您的域名(比如:workyee.com),在Server Name下填入您的服务器名称(比如:http://www.workyee.com/,也就是主机名加上域名),在Administrator's Email Address下填入系统管理员的联系电子邮件地址(比如:t.a.i@163.com),如果你的服务器是本地或者没有DNS名称,请直接输入IP地址。上述三条信息仅供参考,其中联系电子邮件地址会在当系统故障时提供给访问者(此三条信息也可在安装后进行修改,该文件位于Apache Group/Apache2/conf/httpd.conf文件)。下面有两个选择,图片上选择的是为系统所有用户安装,使用默认的80端口,并作为系统服务自动启动;另外一个是仅为当前用户安装,使用端口8080,手动启动(如发生安装失败情况可以打开Apache Group\Apache2\conf\httpd.conf,编辑文件的Listen 80为其他可用的端口,然后用CMD进入命令行模式进入你安装apache的目录/apache2/bin输入apache -k install和apache -k start)。一般选择如下图所示。按“Next”继续。
安装完成后浏览 http://localhost/ 若成功,可看到如下图apache欢迎页面。
2.2 安装SVN
(1)下载SVN
在本实例中,选择下载svn-win32-1.5.4.zip此版本,其他版本可以在此下载http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
(2)安装
将svn-win32-1.5.4.zip压缩包解压,从svn-win32-1.5.4\bin 中将mod_authz_svn.so mod_dav_svn.so复制到Apache Group\Apache2\modules下,再将svn-win32-1.5.4\bin目录下的所有dll文件全部复制到Apache Group\Apache2\bin文件夹下。
修改Apache Group\Apache2\conf\httpd.conf文件:
找到以下两行并删除注释(删除前面"#")
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so
在LoadModule部分的最后添加以下两行。
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
重启apache看到下图状态栏显示Apache/2.0.63(Win32) SVN/1.5.4 DAV/2即表示安装成功。
2.3 配置SVN
(1)建立版本库
首先建立一个用于存在SVN项目的版本库,本例中在D盘驱动器中建立目录SvnTrac/svn,可通过如下命令建立版本库,当然如果你需要建立多个版本库只需将名称进行换名即可。
首先以cmd命令窗口进入svn-win32-1.5.4\bin目录结构下,输入:
>svnadmin create --fs-type fsfs D:/SvnTrac/svn/projects回车,等待提示创建完成;完成后则进行相关密码以及权限设置。
(2)设置密码文件
以cmd命令窗口进入路径Apache Group\Apache2\ bin目录下,然后输入:
> htpasswd -c D:/SvnTrac/svn/projects/conf/<filename> <username>
本例中filename名称使用pw,username名称使用admin(注意filename无需后缀名),这样便可在SvnTrac/svn/projects/conf目录下创建一个用户名为admin的pw文件,此文件将在后面配置权限所用。
部分添加用户操作,可使用如下命令:
添加用户:>htpasswd -d filename <username>
添加用户不带MD5加密用户:>htpasswd -p filename <username>(windows平台下默认是MD5加密)
删除用户:>htpasswd -D filename <username>
(3)设置权限文件
用文本编辑器或在CMD下在SvnTrac/svn/projects/conf路径下生成名为access的文件,此名称将在Apache Group\Apache2\conf\httpd.conf配置文件中所用,此处不使用扩展名。
编辑一下内容:
[groups]
administrator = admin
user = allen
[/]
* = r
@user = r
@administrator = rw
[projects:/]
@user = rw
内容含义为根目录下任何人有读权限,administrator组默认有读写权限;user组对projects也有读写的权限。admin和allen为对应组员,增加组员用","搁分。备注: 如果有中文路径,那要把文件存成UTF8格式,不建议使用中文路径,这在编程当中是严格禁止的。
(4)配置Apache
<Location /svn>
DAV svn
SVNPath "D:/svntrac/svn/projects"
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile "D:/svntrac/svn/projects/conf/pw"
AuthzSVNAccessFile "D:/svntrac/svn/projects/conf/access"
Require valid-user
SVNAutoversioning on
ModMimeUsePathInfo on
</Location>
备注: 如果使用<Location /svn/>可列出D:/svntrac/svn/projects 下的版本库,若为<Location /svn>则不能访问http://127.0.0.1/svn下的项目,而只能这样访问,如http://127.0.0.1/svn/<projectname>。注意配置信息时不要出现不必要的空格,以免apache启动出错。
配置内容说明
设置 |
解释 |
<Location> | 意思是Subversion版本库的URL是http://ipaddress/svn/ |
DAV svn | 告诉Apache是哪个模块响应那个URL的请求-此刻是Subversion模块 |
SVNPath | 告诉Subversion需要查看的版本库位于D:/var/svnhome/projects之下 |
AuthType Basic | 激活基本认证,就是用户名/密码 |
AuthName | 用来说明弹出要求输入认证信息的对话框信息,可以使用中文. |
AuthUserFile | 指定使用认证密码的文件 |
AuthzSVNAccessFile | 位置Subversion版本库的访问控制权限的路径文件 |
Require valid-user | 指定只有输入了正确的用户/密码的用户可以访问URL |
重启apache并访问http://127.0.0.1/svn,如出现下图即表示SVN安装配置成功。
3 SVN客户端TortoiseSVN安装
TortoiseSVN是客户端软件,主要可以用于从服务器上check版本库项目以及updata与commit等相关SVN的管理操作。本实例中使用了TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi版本,另有与其相对应的中文汉化包LanguagePack_1.5.5.14361-win32-zh_CN.msi。其他版本可在http://tortoisesvn.net/downloads subversion官方网站下载。TortoiseSVN具体使用操作将在接下来的博文做介绍。