Windows SVN服务安装与配置
1. 下载SVN服务端软件和客户端软件。http://subversion.tigris.org/
SVN服务端:Subversion
SVN客户端:# TortoiseSVN (Windows)、Subclipse (Eclipse)、Subversive (Eclipse)、SCPlugin (Mac OS X)、RapidSVN (cross-platform)、AnkhSVN (Visual Studio)、VisualSVN (Visual Studio)
2. 安装SVN服务端(Setup-Subversion-1.6.4.msi)
选择安装路径,一路回车即可。
3. 建立版本库(Repository)
运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:
svnadmin create F:/svn/
就会在目录F:/svn/下创建一个版本库。
我们也可以使用TortoiseSVN图形化的完成这一步:
在目录E:/svndemo/repository下”右键->TortoiseSVN->Create Repository here…“, 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件。
4. 配置SVN服务
在你建储存库的地方F:/svn
打开/conf/目录,打开svnserve.conf找到一下两句:
# [general]
# password-db = passwd
# anon-access = none
# auth-access = write
去之每行开头的#,其中第二行是指定身份验证的文件名,即passwd文件.anon-access = none 是匿名用户不能访问,必须要有用户名和密码。(注意:问题就出在这,一定要注意格式去掉注释后要顶格不能有空)
同样打开passwd文件,将
# [users]
# harry = harryssecret
# sally = sallyssecret
格式为“用户名 = 密码”,如可插入一行:admin = admin888,即为系统添加一个用户名为admin,密码为admin888的用户
5. 运行SVN服务器
在命令行执行
svnserve --daemon --root F:/svn
服务启动,–daemon可简写为-d,–root可简写为-r,可以建立一个批处理文件并放在windows启动组中便于开机就运行SVN服务(注意:这是临时打开的服务,命令执行后不能关闭窗口)。
6. 将SVN服务设置为Windows系统服务(非必须,为了方便)
开始--〉运行--〉cmd--〉dos窗口中输入以下命令
sc create SvnService binpath= " /”D:/Program Files/Subversion/bin/svnserve.exe/” --service --root F:/svn " depend= "TCPIP" start= auto
红色的部分 是svnservice 是服务名称
蓝色的部分前面的是svnserver.exe文件的磁盘路径后面的是Subversion Repository的磁盘路径,depend的值TCPIP是依赖的服务。
删除服务的命令
sc delete SvnService
注:注意sc的命令格式。如depend与=之间不能有空格,=之后必须有空格。路径中有空格必须用引号将路径引起来。
7. SVN与Apache结合(非必须,为了能从浏览器观察)
进入Subversion的安装目录,找到文件mod_dav_svn.so和mod_authz_svn.so,将它们拷贝到Apache的modules目录。
从Subversion的安装目录拷贝文件libdb43.dll到Apache的modules目录。
使用如记事本之类的文本编辑器编辑Apache的配置文件(通常为c:/program files/apache group/apache2/conf/httd.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
在配置文件的最后添加下面这些行:
<Location /svn>
DAV svn
SVNParentPath F:/SVN
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile F:/passwd
#AuthzSVNAccessFile D:/svnaccessfile
Require valid-user
</Location>
配置表示:你所有的版本库将位于F:/SVN目录下,要访问你的版本库可以使用这样的
URL:http://YourIP/svn/,访问权限将由passwd文件中的用户名/密码来限制。
详细说明如下:
<Location /svn>
意味着可以通过像这样的URL(http://MyServer/svn)来访问Subversion版本库
DAV svn
告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块
SVNListParentPath on
在Subversion 1.3及更高版本中,这个指示器使得Subversion列出由SVNParentPath指定的目录下所有的版本库
SVNParentPath F:/SVN
告诉Subversion在目录F:/SVN下寻找版本库 #(修改成你自己的目录)
AuthType Basic
启用基本的验证,比如用户名/密码
AuthName "Subversion repositories"
当一个验证对话框弹出时,告诉用户这个验证是用来做什么的
AuthUserFile F:/passwd #(密码文件,不是文件夹哦)
指定F:/passwd用为密码文件用来验证用户的用户名及密码
AuthzSVNAccessFile F:/svnaccessfile
指定F:/svnaccessfile来限定各个用户或组在版本库中目录的访问权限
Require valid-user
限定用户只有输入正确的用户名及密码后才能访问这个路径
创建passwd文件
打开命令行(DOS窗口CMD),将当前目录切换到apache2目录(通常为c:/program files/apache group/apache2/bin),
输入命令:
htpasswd.exe -c passwd username
Automatically using MD5 format.
New password: ****** (输入密码)
Re-type new password: ******
Adding password for user username
copy passwd F:/ (Httpd.conf 中设定的是在D:)
重启Apache服务。