第一章 引 言
1.1 编写目的
版本控制之于程序员,就好比安全网之于高空秋千表演者。知道安全网就在那里,万一自己摔落它能够提供保护,高空秋千表演者才能放心大胆地在空中飞跃。同样,版本控制使您有能力去冒以往想都不敢想的风险。如果哪儿出了错,您总是可以使自己的代码回复到一个已知的、工作正常的版本。您可以在不触及主干的分支中进行试验,而不会影响到其他小组成员。在已经发布的产品的较老版本中发现 bug 时,您可以轻松检出特定版本,以确认、修订,并生成该 bug 的修补程序。如果没有版本控制,您必须极为慎之又慎,缓慢地推进,总而言之,生产力会更低。
Subversion 是一种开放源码的全新版本控制系统,支持可在本地访问或通过网络访问的数据库和文件系统存储库。不但提供了常见的比较、修补、标记、提交、回复和分支功能性,Subversion 还增加了追踪移动和删除的能力。此外,它支持非 ASCII 文本和二进制数据,所有这一切都使 Subversion 不仅对传统的编程任务非常有用,同时也适于 Web 开发、图书创作和其他在传统方式下未采纳版本控制功能的领域!
第二章 安装配置
本安装基于Windows vista环境下进行安装与配置的,其它windows版本都可用;搭建此项目管理服务器首先必须要安装Apache服务器。
2.1 安装Apache
(
1)下载Apache
访问地址:
http://httpd.apache.org/download.cgi下载
Apache.
注意:
Apache低于2.0.54的Windows版本的存在编译问题,低于2.0.54的版本不能与Subversion 1.2一起工作。2.2.X目前不能很好支持SVN 1.4.X。所以当前建议下载
Apache 2.0.63版本
(2) 安装
下载完成后运行
apache_2.0.63-win32-x86-no_ssl.msi ,根据提示进行操作。遇到系统要求输入SERVER的URL时,如果你的服务器没有DNS名称,请直接输入IP地址(此文件也可在安装后进行修改,该文件位于Apache Group/Apache2/conf/httpd.conf文件)。
注意:如果你已经有了
IIS或其他监听80段口的程序,安装会失败,如果发生这种情况,直接到程序的安装目录/Apache Group/Apache2/conf,打开httpd.conf。编辑文件的Listen 80为其他可用的端口,例如Listen 8080,然后重新启动-这样就不会那个问题了,或者将其它应用的端口进行改之。
(
3)检查
安装完成后浏览
http://localhost/
若成功,可看到apache欢迎页面。如下图所示:
2.2 安装Subversion
(
1)下载 Subversion
地址:
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
在本实例中,选择下载svn-win32-1.4.6.zip此版本.
(2)安装
将svn-win32-1.4.6.zip解压到安装程序的目录下;(如果下载的是exe安装文件,可以根据指导安装, Subversion会自动认识到你安装了Apache,你就几乎完成了工作),本实例中采用解压方式进行安装,它不会自动找到Apache服务器,所以你还有额外的步骤。
(3)后续
步骤1 从svn-win32-1.4.6/bin 中将mod_authz_svn.so mod_dav_svn.so复制到Apache Group/Apache2/modules下,再将svn-win32-1.4.6/bin目录下的所有dll文件全部复制到Apache Group/Apache2/bin文件夹下。
步骤2 找到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
进行如上后续修改后完成了SVN+Apache之间的WebDav的工作了。重启Apache以后可看到如下图:
这是安装最终的图,图中状态栏显示Apache/2.0.63(Win32) SVN1.4.6 DAV/2是由于还安装了mod_python,此步骤稍后将在Trac中讲解,如上安装好后应显示为Apache/2.0.63(Win32) SVN1.4.6 DAV.
2.3 配置
(
1)建立版本库
首先建立一个用于存在SVN项目的版本库,本例中在D盘驱动器中建立目录var/svnhome,可通过如下命令建立版本库,当然如果你需要建立多个版本库只需将名称进行换名即可。
首先以cmd命令窗口进入svn-win32-1.4.6/bin目录结构下,输入:
>svnadmin create --fs-type fsfs D:/
var
/svnhome/projects
回车,等待提示创建完成;完成后则进行相关密码以及权限设置
。
(2)设置密码文件
以
cmd
命令窗口进入路径
Apache Group/Apache2/ bin
目录
下
,
然后输入
:
>
htpasswd -c D:/var/svnhome/projects/conf/<filename> <username>
本例中
filename
名称使用
passwordfile,username
名称使用
admin(
注意filename无需后缀名),这样
便可在
var/svnhome/projects/conf
目录下创建一个用户名为
admin
的passwordfile
文件
,此文件
将在后面配置权限所用
。
此后添加用户,可使用如下命令:
>htpasswd filename <username>
删除用户,使用如下命令:
>htpasswd -D filename <username>
若对密码不想加密可使用-cp
参数,windows
平台下默认是MD5
加密
(3)设置权限文件
用文本编辑器在var/svnhome/projects/conf
路径下生成名为svnaccessfile的文件,此名称将在
Apache Group/Apache2/conf/httpd.conf
配置文件中所用,此处不使用扩展名。编辑一下内容:
[groups]
committers = admin
developers = Allen
[/]
* = r
@developers = r
@committers = rw
[projects:/]
@
developers
= rw
基本含义是根目录下任何人有读权限,
committers
组有读写权限;admin对projects读写权限,而
developers
组只有读的权限
。
备注:
如果有中文路径,那要把文件存成UTF8格式,不建议使用中文路径,这在编程当中是严格禁止的.
(4)配置服务
编辑
Apache Group/Apache2/conf/httpd.conf
文件,添加下面代码。
<Location /svn>
DAV svn
SVNPath "D:/var/svnhome/projects"
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile " D:/var/svnhome/projects/conf/passwordflie"
AuthzSVNAccessFile "D:/var/svnhome/projects/conf/svnaccessfile"
Require valid-user
SVNAutoversioning on
ModMimeUsePathInfo on
</Location>
备注: 如果使用<Location /svn/>可列出D:/var/svnhome/projects 下的版本库,若为<Location /svn>则不能访问http://127.0.0.1/svn下的项目,而只能这样访问,如http://127.0.0.1/svn/<projectname>
(5)配置内容说明
设置
|
解释
|
<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
|
另外如果当此时通过访问
http://127.0.0.1/svn
提示403 Forbidden错误的信息的话,主要是由于svnserve.conf此文件中的[general]内容password-db = passwordfile内容加入(或者将原来的#去掉,同时将passwd修改你所创建的密码文件,本例中为passwordfile),也可以实现根目录的访问了!
2.4 安装TortoiseSVN(可选)
此工具是客户端软件,主要可以用于从服务器上check版本库项目以及updata与commit等相关SVN的管理操作,其下载地址为:http://tortoisesvn.net/downloads,另外还可以下一个语言包,都在给其的subversion官方网站上能下到.