svn(subversion)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。
下面介绍一种在Windows操作系统下运行的借助apache运行,并使用文件存储FSFS的SVN服务端和客户端配置方法:
需要下载的软件
1.SVN服务端软件 SVN 1.4.6
http://code.google.com/p/npc/downloads/detail?name=svn-1.4.6-setup.exe&can=2&q=
2.SVN客户端TortoiseSVN 1.4.8.12137
3.Apache httpd 2.2.16
http://apache.freelamp.com/httpd/binaries/win32/httpd-2.2.16-win32-x86-no_ssl.msi
4.Eclipse
http://www.eclipse.org/downloads/
版本很多,可以选择一个需要的,比如说Java的.3.x版本的比较常用
5.Subclipse
http://subclipse.tigris.org/files/documents/906/45156/site-1.4.8.zip
安装上述的五个软件.第一个比较简单,没有什么选项.第二个软件会关联到操作系统的右键菜单,必须要重新启动计算机.第三个Apache的安装一定要设置好server name ,network domain和管理员的Emai.必须都填写.如果是在本机,前两个可以写作localhost,管理员邮箱写一个有效的Emai地址就行了.这些信息会被写入到Apache的配置文件中.注意一定要让Apache Monitor中的Apache服务成功启动.(Apache图标会显示为绿色小灯).这时访问:http://localhost会显示it works!.这时就成功安装了.最常遇到的问题就是端口被占用,无法成功启动.如果发生的话,可以先使用netstat –a命令查看端口的使用情况.如果占用了,想办法停掉占用的服务或者换一个端口.在Apache的配置文件中修改如果是在本机,可以找到Listen 行,修改为127.0.0.1:80,修改下端口号再重启Apache.Eclipse是无需安装的,插件的话,下载后放到dropins或plugins目录下就可以使用了.如果subclipse安装成功的话,会在新建项目的类型中多一项SVN项目的.
连接SVN和Apache,首先应该建立一个SVN的目录结构,使用命令行,cd到SVN安装文件的bin目录下:
svnadmin create [svn文件系统根目录]
比如: svnadmin create D:/svnRoot/
这时,svnRoot目录会被创建,下面会生成很多文件.
dir,看一下bin目录下的几个文件:
2007-12-20 16:29 1,019,980 svn.exe
2007-12-20 16:29 712,788 svnsync.exe
2007-12-20 16:29 528,470 svnadmin.exe
2007-12-20 16:29 520,276 svnlook.exe
2007-12-20 16:29 561,238 svnserve.exe
2007-12-20 16:29 368,730 svnversion.exe
2007-12-20 16:29 499,808 svndumpfilter.exe
2007-12-20 16:29 802,816 libdb44.dll
2007-12-20 16:29 131,149 libapr-1.dll
2007-12-20 16:29 172,118 libaprutil-1.dll
2007-12-20 16:29 36,952 libapriconv-1.dll
2007-12-20 16:29 69,716 intl3_svn.dll
2007-12-20 16:29 1,073,152 libeay32.dll
2007-12-20 16:29 204,800 ssleay32.dll
2007-12-20 16:29 602,204 mod_dav_svn.so
2007-12-20 16:29 143,456 mod_authz_svn.so
其中的libdb44.dll, intl3_svn.dll拷贝到apache的bin目录下.其中的mod_dav_svn.so, mod_authz_svn.so安装到apache的modules目录下.
修改apache的配置文件,找到如下两行
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
将前面的#去掉,即取消对其的注释
这两个文件是用来支持WebDAV服务的.
WebDAV 是 HTTP 的一个扩展,作为一个文件共享的标准不断流行。当今的操作系统变得极端的 web 化,许多内置了对装载 WebDAV 服务器导出的“共享”的支持。如果你使用 Apache 作为你的 Subversion 网络服务器,某种程度上,你也是在运行一个 WebDAV服务器。
DAV 的意思是 “Distributed Authoring and Versioning”。RFC 2518 为 HTTP 1.1 定义了一组概念和附加的扩展方法来把 web 变成一个更加普遍的读/写媒体。基本思想是一个 WebDAV 兼容的 web服务器可以像普通的文件服务器一样工作;客户端可以通过 HTTP 加载(类似于 NFS 或 SMB) WebDAV
共享文件夹。
然后再后面加上两行,把从svn bin目录下拷贝过来的两个so文件加载.
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
在配置文件的最后加上:
<Location /svn>
DAV svn
#SVNListParentPath on
SVNParentPath D:/svnRoot/
</Location>
这时访问http://localhost/ svnRoot会返回Revision 0: / Powered by Subversion version 1.4.6
则表明安装成功.
此时在桌面上右键即可调出客户端TortoiseSVN,选择repo-browser.输入上述的url即可查看SVN项目的文件.
要建立一个SVN项目,可以在Eclipse中新建一个SVN项目, url也选作上述的地址.具体操作还是比较容易的.
参考: http://blog.csdn.net/zhaolj1983/archive/2008/06/18/2560009.aspx