1..能够搭建svn服务器
2..使用Apache搭建 http, https 访问
3..svn权限控制
4..svn版本库迁移 重新定位IP获取项目
5..svn 版本库的备份 和 还原
6..svn 文件改名 、锁定文件-解锁文件
7..恢复到以前的版本
两种访问方式:svn:// 和 http:// 一下 经测试成功
------------------------------------------------------
软件:
httpd-2.2.16-win32-x86-openssl-0.9.8o.msi
Setup-Subversion-1.6.6.msi
TortoiseSVN-1.6.5.16974-win32-svn-1.6.5.msi
http:// Access via WebDAV protocol to Subversion-aware Apache server
https:// Same as http://, but with SSL encryption.
svn:// Access via custom protocol to an svnserve server
---------------------------------------------
使用
http://localhost/svn/project2
http://IP/
访问:
---------------------------------------------
将Subversion\bin中 文件
mod_authz_svn.so 进行目录访问控制
mod_dav_svn.so
intl3_svn.dll
libdb44.dll
复制到 Apache2.2\modules目录下
httpd.conf 增加:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule dav_module modules/mod_dav.so
<Location /svn/>
DAV svn
SVNParentPath "D:/svns/repository/"
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile D:/svns/repository/project2/users.auth
AuthzSVNAccessFile D:/svns/repository/project2/access.auth
Require valid-user
</Location>
说明:
使用 SVNParentPath 代替 SVNPath 指定多个版本库,可以用多个 Location 标签
AuthType Basic:启用基本的验证,比如用户名/密码对。
AuthName "svnrepos":当一个认证对话框弹出时,出现在认证对话框中的信息。(最好用英文,TortoiseSVN 不支持中文,安装语言包除外。)
AuthUserFile 指定passwd为用户文件,用来验证用户的用户名及密码。
Require valid-user 限定用户只有输入正确的用户名及密码后才能访问这个路径
AuthzSVNAccessFile 指向的是 authz 的策略文件,详细的权限控制可以在这个策略文件中指定
使用Apache 命令产生 md5加密
D:\Program Files\Apache Group\Apache2\bin>htpasswd -cb users.auth jdk jdk
Automatically using MD5 format.
Adding password for user jdk
users.auth(新建) 生成在Apache bin目录下
加密字符串:jdk:$apr1$hn14j9E.$udJyqcLPFhEJ4NWfHX4j5.
---
设置访问权限
access.auth(新建)
[/]
jdk = rw
[project2:/]
*=
jdk = rw
[project1:/]
*=
jdk = rw
---------------------------------------------
使用
svn://localhost/
svn://IP/
访问:
---------------------------------------------
1..安装:Setup-Subversion-1.6.6.msi
2..创建SVN仓库
svnadmin create D:\svns\repository\project1
3.运行服务器
svnserve -d -r D:\svns\repository\project1
或者 svnserve -d
4..注册window服务
sc create SVNServer binpath= "\"D:\svns\Subversion\bin\svnserve.exe\" --service -r D:\svns\repository\project1" displayname= "SubversionServer" depend= Tcpip start= auto
卸载 svn 服务
sc delete SVNServer
svnserve -d -r D:\svns\repository\project1 --listen-port 8088
net stop SVNServer
net start SVNServer
备注:
sc 是windows自带的服务配置程序
binPath 表示svnserve可执行文件的安装路径,
由于路径中的"Program Files"带有空格,
因此整个路径需要用双引号引起来。而双引号本身是个特殊字符,需要进行转移,
因此在路径前后的两个双引号都需要写成\"
--service 参数表示以windows服务的形式运行,
--root 指明svn repository的位置,
service 参数与root参数都作为binPath的一部分,
因此与svnserve.exe的路径一起被包含在一对双引号当中,而这对双引号不需要进行转义。
displayname 表示在windows服务列表中显示的名字,
depend =Tcpip 表示svnserve服务的运行需要Tcpip服务,
start=auto 表示开机后自动运行
--------------------------------------
e:\svn\repo1
svnserve.exe --daemon --root e:\svn
TortoiseSVN中的版本库浏览器URL缩减为:
svn://localhost/repo1
---------------------------------------
5..authz
[groups]
jdks = jdk
[/]
@jdks = rw
* = r
[project1:/]
@jdks = rw
* = r
6..passwd
[users]
jdk = jdk
7..svnserve.conf
[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
realm = project1 # 范围
---------------------------------------------------
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:/// 是本地访问,即服务器端和客户端在一个机器上