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

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


[groups]
project1_committers = paulex, richard
project2_committers = jimmy, michel, spark, tony, Robert

[repos1:/]
* = r
@ project1_committer = rw

[repos2:/]
* = r
@ project2_committer = rw

这样 repos1的 project1_committer 组只能对 repos1 版本库下的文件具有写权限而不能修改版本库 repos2 ,同样 repos2 的 project2_commiter 组也不能修改 repos1 版本库的文件。



FAQ:

1、路径或权限不足时将出现错误信息提示:

http://localhost (路径不对)
Error * PROPFIND request failed on ''/'' PROPFIND of ''/'': 200 OK (http://localhost)

http://localhost/svn (权限不足)
Error * PROPFIND request failed on ''/svn'' PROPFIND of ''/svn'': 403 Forbidden (http://localhost)

http://localhost/svn/repos (正常显示)

http://localhost/repos (权限不允许)
Error * PROPFIND request failed on ''/repos'' PROPFIND of ''/repos'': 405 Method Not Allowed (http://localhost)


2、不启动E:subversionbinsvnserve.exe ,但启动了ApacheSVN ,访问(tortoiseSVN –> Repo – browser)或提交(SVN Commit)情形如下:

现象:svn://localhost/svn/repos 不能访问或提交,提示:Error * Can''t connect to host ''localhost'': 由于目标机器积极拒绝,无法连接。 但 file:///e:/svn/repos 和 http://localhost/svn/repos 可以访问或提交。

原因:svn:// 是独立服务器 svnserver 自己的协议。file:/// 是本地访问,即服务器端和客户端在一个机器上。


文章出处:http://www.diybl.com/course/1_web/webjs/2008410/109655_2.html


http://hi.baidu.com/yuncsoft/blog/item/19b41d5168e4a81c377abed6.html
安装svn服务器后,为了方便启动必须在windows下添加服务项
我们使用批处理完成,做这一步要注意,添加之后只能从注册表删除,如果你知道别的办法请留言。感激不尽。

sc create svnserver binpath= "C:Program FilesSubversionbinsvnserve.exe --service --root F:svn" displayname= "svnserver" depend= tcpip start= auto obj= "NT AUTHORITYNetworkService"
其中C:Program FilesSubversionbinsvnserve.exe 为svn的路径
F:svn 为版本库的目录
displayname= "svnserver" 为设置服务的名字
--root 是设置根目录 比如:原来你访问为:svn://localhost/svn
设置--root F:svn之后缩写为svn://localhost 这个一定要注意,否则Error: URL 'svn://localhost/svn'doesn't exist

自动更新的配置:

开发中经常要在更新SVN的同时要更新WEB服务器。可以用过Subversion的钩子(Hook)来实现。

以下是Windows操作系统下的配置:

在SVN库的hooks目录下面新建post-commit.bat文件,用记事本打开,然后写入如下的代码:

@echo off

SET REPOS=%1
SET REV=%2

SET DIR=%REPOS%/hooks
SET PATH=%PATH%;

SET WORKING_COPY=D:WebsitesLatisse
svn update %WORKING_COPY% –username user –password pwd