快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

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



[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:\subversion\bin\svnserve.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 Files\Subversion\bin\svnserve.exe --service --root F:\svn" displayname= "svnserver" depend= tcpip start= auto obj= "NT AUTHORITY\NetworkService"
其中C:\Program Files\Subversion\bin\svnserve.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:\Websites\Latisse
svn update %WORKING_COPY% –username user –password pwd

此处的D:\Websites\Latisse即是WEB网站的目录(当然得先建好这个目录,并且从svn服务器上签出相应的项目)。

这样在用户提交完后,便会自动更新到WEB服务器上。

需要注意到问题是:

1.不要在WEB网站文件夹下作修改或其它操作,防止出现文件夹被锁。无法更新。

2.在这里我明确写明了用户名(user),密码(pwd)。在我设置时发现,如果没有设置的话会出现错误,在直接运行这个bat文件时是能正常执行的,但是,在Subversion提交后却不能正常运行。并且可以看到服务器进程中会出现cmd,svn两个进程,并且不会自己结束,而用户在提交内容到服务器后,会出现客户端无法正常返回的问题。

3.如果运行不能正常,可以通过下面的方法看到出错信息:

将刚才的post-commit.bat改名为post-commit-run.bat,然后再建一个post-commit.bat的文件,里面写入如下的代码:

call %~dp0post-commit-run.bat %* > %1/hooks/post-commit.log 2>&1

这样运行结果就会被写入到post-commit.log文件中,如果出错,也可以找到出错的原因。


svn服务端更改ip后,客户端重新定位方法:
使用最新版本的TortoiseSVN,右键在工作复本的根目录上右键->TortoiseSVN->重新定位(Relocate),再按提示操作就可以了..不过最好先备份..因为这个操作有一定的危险性
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论