本节讲解一下SVN管理与应用相关的资料,之前几节我们也提到了SVN管理问题,本节再简单和大家讨论一下,希望对你学习SVN有一定的帮助。
最常见的配置模式便是与Apache集成,这样SVN可以采用WebDev协议方式提供服务。主要的好处有:通过Apache以HTTP方式穿透防火墙,便于在互联网环境使用;提供目录的版本控制;纯2进制的文件对比方式等。下面将介绍如何将SVN集成在Apache上。
准备工作:
下载软件:
SVN服务器端程序。到官方网站的下载二进制安装文件,来到二进制包下载部分,找到WindowsNT,2000,XPand2003部分,然后选择"thisdirectory",这样我们可以看到许多下载的内容,目前可以下载svn-1.2.3-setup.exe。
TortoiseSVN,客户端程序。TortoiseSVN是扩展WindowsShell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。
官方网站是TortoiseSVN,下载方式和前面的svn服务器类似,在Download页面的我们选择OfficialversionforWin2k/XPorhigher的版本,然后在sourceforge的下载页面选择目前的最高稳定版本的安装文件TortoiseSVN-1.2.5.4719-svn-1.2.3.msi。(注意:TortoiseSVN有一个特殊对VS.Net运行时一个BUG修正的版本,在下载页面有选择:SpecialversionforWin2k/XPorhigher:(WeprovideNOsupportforthis!)uses_svnfoldersinsteadof.svntoworkaroundtheVS.NETbugwithwebprojects.Ifyoudon'tusewebprojectsthenpleaseusetheofficialversion.)
TortoiseSVN的中文语言包,注意这个需要下和客户端程序版本相同的。可以在Download页面内的LanguagePacks选择下载。
Apache服务器程序。可以到Apache官方网站下载最新版本的Apache,并且SVN必须运行在Apache2以上版本,在下载页面选择Windows的安装包文件apache_2.0.55-win32-x86-no_ssl.msi
AnkhSVN,可选安装VS.Net的SVN插件。有0.5和0.6版本选择,0.6版支持VS2005Beta2,下载页面。
停止IIS,因为Apache默认安装为80端口,需要关闭IIS避免端口冲突。可以在安装好之后再调整端口。
开始安装:
SVN管理时先安装Apache服务器。在到填写ServerInfo的时候,若机器已经启用了AD,安装程序会自动填写,否则自己手动填写。安装完成之后到安装目录下找到conf目录下的httpd.config文件,搜索Listen,并将Listen后面的80改为8080(或者你希望的端口),然后重新启动Apache服务器,这时可以用http://localhost:8080来测试是否安装正确。
再安装SVN服务器,没有什么好说的,一路回车就可以了。(安装SVN时,请确保Apache服务器正在运行状态,安装过程中可能会将Apache关闭,重新启动属于正常现象)
配置Apache服务器与SVN集成:
SVN管理过程中安装好Apache服务器以后还要进行配置。首先将Subversion安装目录bin\下面的两个文件:mod_authz_svn.so和mod_dav_svn.so复制到Apache安装目录modules\目录下。
有些文章说需要再修改httpd.conf,并做如下修改:
找到Apache安装目录下的conf目录,用文本编辑器打开httpd.conf,找到一下两行:
#LoadModuledav_modulemodules/mod_dav.so
#LoadModuledav_fs_modulemodules/mod_dav_fs.so
将每行前面的注释符“#”去掉。再在所有LoadModule语句的最后添加一下几行:
#SVN
LoadModuledav_svn_modulemodules/mod_dav_svn.so
LoadModuleauthz_svn_modulemodules/mod_authz_svn.so
但是我安装完之后发现这个文件已经被做了那些修改,大概是新版的SVN安装程序做了一些优化吧。其实在成功安装SVN之后,Apache服务器已经和SVN初步集成。如图:
注意下面的状态栏已经是Apache/2.0.55SVN1.2.3DAV/2建立一个SVN存放文件的目录,我在F盘下创建一个文件夹:F:/SubversionFiles
接下来我们必须告诉Apache我们的资源库所在的路径,可以通过Location指令来完成这个设置。因为不希望为每个单独的项目都进行单独的设置,所以我们把所有项目都存放在统一的资源库目录,那么可以使用SVNParentPath指令来指定存放所有项目的路径。在httpd.conf文件最后添加下面配置:
#SVN
DAVsvn
SVNParentPath"F:/SubversionFiles"
这样我们就可以通过http://myhost:8080/svn/<项目名>来访问存放于资源库F:/SubversionFiles中的指定项目。当然有可能你并不希望某个项目提供这样一种访问方式,这时候你可以使用SVNPath为每个项目进行单独的设置,SVNPath的使用方法如下:
DAVsvn
SVNPath"F:/SubversionFiles/project1"
同样把这段配置放在httpd.conf最后,重启ApacheHTTP服务即可通过http://myhost:8080/svn/project1来访问project1项目的资源库。请期待下节SVN管理介绍。
【编辑推荐】