SVN服务器的搭建和基础配置
——windows环境
IT项目管理的第一步就是文档的管理。文档包括需求文档、详细设计文档、源代码、测试用例等等。对文档的管理,主要工作就是对文档版本的管理。
Subversion(SVN)就是一个最常用的版本控制系统,本文主要提供一个简易的安装指南。
一、下载软件:
1、httpd-2.2.22-win32-x86-no_ssl.msi
2、Setup-Subversion-1.7.5.msi
下载地址:http://subversion.tigris.org/
二、安装Apache
安装过程很简单,和普通软件一样点击下一步直到安装完成即可。唯一需要注意的地方是安装之前请先检查80端口是否被占用。因为IIS服务器默认使用80端口,由于Apache预设也使用80端口,所以Windows服务器中80端口经常被占用。如果被占用了,修改{Apache_Home}/ conf/httpd.conf配置文件中的以下两项,将端口号改为一致即可。
Listen 8888
ServerName localhost:8888
三、安装Subversion
和Apache一样,安装Subversion的过程一样简单,安装完成后,为了和Apache结合使用,需要做如下配置。
1、把{Subversion_Home}/bin/目录下的mod_dav_svn.so和mod_authz_svn.so 复制到{Apache_Home}/modules/目录下。
2、把{Subversion_Home}/bin/目录下的libdb44.dll、libeay32.dll、以及 ssleay32.dll 复制到{Apache_Home}底下的bin目录下。
3、接着用文本编辑器打开Apache的{Apache_Hoot}/conf/httpd.conf,寻找一堆LoadModule 指令,先找到以下两行:
#LoadModule dav_modulemodules/mod_dav.so
#LoadModule dav_fs_modulemodules/mod_dav_fs.so
把这两行最前面的 '#' 字元刪除,然后把下面这行加到这群 LoadModule 指令的后面,注意是最后面:
LoadModule dav_svn_modulemodules/mod_dav_svn.so
LoadModuleauthz_svn_module modules/mod_authz_svn.so
做完以上配置后,重新启动Apache HTTP Server,如果出现:
It works!
即表示集成Subversion到Apache成功。
四、在Subversion中建立文件库
建立一个SVN的文件库路径很简单,使用如下命令即可:
svnadmin create D:/SVN/BlogDemo
其中D:/SVN为SVN文件库存放路径,BlogDemo为仓库名,可以理解为项目名。
创建完成后,仓库目录中的目录结构如下图所示:
五、在Apache中添加文件库访问路径
在{Apache_Hoot}/conf/httpd.conf中添加如下路径配置段:
<Location/svn>
DAV svn
#如果为SVNPath,那么/svn为/svn/BlogDemo
#SVNPath D:/SVN/BlogDemo
SVNParentPath D:/SVN
AuthName "Subversion repository"
#指定了文件库访问政策文件
AuthzSVNAccessFileD:/SVN/conf/AuthzSVNAccessFile.txt
#只有经过认证的用户才可以访问
Require valid-user
#表示允许匿名访问
Satisfy Any
#The following is Basic authenticationsetting
AuthType Basic
#用来指示使用htpasswd创建的密码文件的位置
AuthUserFile D:/SVN/conf/AuthUserFile.txt
</Location>
其中"/svn"就是用户端存取特定文件库的URI(Uniform ResourceIndentifier),SVNPath后面指定的路径则是文件库的绝对路径,假设我们的文件库实际存放的路径是D:/SVN/BlogDemo,并且希望用户端使用 "http://localhost:8888/svn/BlogDemo"的URL来存取文件库,那么要加入 httpd.conf的內容就是:
<Location /svn/BlogDemo>
DAV svn
SVNPath D:/SVN/BlogDemo
</Location>
SVNParentPath后面指定的路径是文件库的绝对路径,表示可以让任何人都可以通过http://localhost:8888/svn/<文件库名称>的方式,存取位于D:/SVN这个目录以下的所有文件库。也就是说,这个设定动作只需要一次,如果使用SVNPath,那么你必须为各个文件库分别指定对应的路径。
六、管理用户信息
用Apache的htpasswd指令生成用户名和密码:
htpasswd -cmd:/svn/passwd.txt username1
htpasswd -md:/svn/passwd.txt username2
htpasswd的参数-c 是创建文件的意思,故只在首次使用。仅使用-m参数时也可用来修改密码。
七、配置文件库访问政策文件
[groups]
admin= admin
development= ken
[/]
@admin= r
@development= rw
代表admin组里面有admin用户,development组里面有ken用户,多个用户用“,”号分隔。
八、启动Apache服务
启动服务,即可通过http协议访问SVN中的内容,如果出现以下内容,那么证明已经安装成功。
BlogDemo - Revision 0: /
九、导入项目
如果我们要在BlogDemo文件库中引入多个项目,比如再将D:/SVN_TEMP/BlogDemo/SVNProject项目放到BlogDemo/SVNProject目录下,则进入 SVNProject目录,用下面的命令引入SVNProject:
svn import D:/SVN_TEMP/BlogDemo/SVNProject http://localhost/svn/BlogDemo/SVNProject -m "Initial repository layout"