WINDOWS下搭建SVN服务器端的步骤分享(Subversion)

2019-10-16 19:11:30王振洲


在配置文件最后添加如下几行:

<Location / repository>
DAV svn<


br /> SVNPath e:/svn/repos1
</Location>

这个配置告诉Apache首先需要启用 dav_module,然后加载 dav_svn_module 。版本库对外的URL是:http://服务器IP/repository ,所有的Subversion版本库在物理上位于e:/svn/repos1 。
配置完毕后重新启动 Apache,打开浏览器,输入 http://服务器IP/ repository 将会看到如下画面:


这表示 Apache 的 dav_svn 模块已经可以正常工作了。用户可以使用任何一种 Subversion 的客户端通过 Http 协议访问你的版本库。

如果想要指定多个版本库,可以用多个 Location 标签,也可以使用 SVNParentPath 代替 SVNPath,例如在 e:svn 下有多个版本库 repos1,repos2 等等,用如下方式指定:

<Location /repository>
DAV svn
SVNParentPath e:/svn
</Location>

“SVNParentPath e:/svn ” 表示 e:svn 下的每个子目录都是一个版本库。可以通过 http://服务器IP/repository/repos1,http://服务器IP/repository/repos2 来访问。

现在你的版本库任何人都可以访问,并且有完全的写操作权限。也就是说任何人都可以匿名读取,修改,提交,以及删除版本库中的内容(注:这时不需要配置E:svnreposconfsvnserve.conf 文件,并且也不需要启动E:subversionbinsvnserve.exe。因为提交是通过Apache的dav模块处理的,而不是由svnservice处理。)。我们用 TortoiseSVN 客户端验证即知。
显然大部分场合这是不符合需求的。那么如何进行权限设置呢,Apache 提供了基本的权限设置:

四、认证选项
1、基本 HTTP 认证
最简单的客户端认证方式是通过 HTTP 基本认证机制,简单的使用用户名和密码来验证一个用户的身份。Apache提供了一个 htpasswd 工具来管理一个用户文件,这个文件包含用户名和加密后的密码,这些就是你希望赋予 Subversion 特别权限的用户。htpasswd 可以在 Apache 的 bin 安装目录下找到。具体使用方法如下:

创建用户文件:
htpasswd -c /etc/svn/passwordfile username

添加新用户(-m 表示以MD5加密密码):
htpasswd [-m] /etc/svn/passwordfile Newusername

更改用户密码:
htpasswd [-m] /etc/svn/passwordfile username

删除用户(要用大写的 D ):
htpasswd –D /etc/svn/passwordfile username


接下来修改 httpd.conf,在 Location 标签中加入如下内容:

AuthType Basic
AuthName "svn repos"
AuthUserFile E:/usr/Apache2.2/bin/passwd
Require valid-user

说明:
AuthType Basic:启用基本的验证,比如用户名/密码对。
AuthName "svn repos":当一个认证对话框弹出时,出现在认证对话框中的信息。(最好用英文,TortoiseSVN 不支持中文,安装语言包除外。)
AuthUserFile E:/usr/Apache2.2/bin/passwd:指定E:usrApache2.2binpasswd为用户文件,用来验证用户的用户名及密码。