码迷,mamicode.com
首页 > Windows程序 > 详细

Windows 下 SVN 服务器配置

时间:2015-04-15 16:26:34      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:

1.下载文件,
 
下载最新版本subversion,我这里选择VisualSVN-Server-2.5.7.exe
 
2.安装Subversion 服务器
 
由于我下载的是setup.exe版本,安装程序安装后会自动设置系统变量.如果你下载的是zip版就需要手动设置系统变量.
 
setup.exe版直接安装就可以了.安装到D:/Program Files/Subversion
 
首先创建SVN储存库(repository)
 
svnadmin create F:/svn/
 
repository创建完毕后会在目录下生成若干个文件和文件夹,dav目录是提供给Apache与mod_dav_svn使用的目录,让它们存储内部数据;db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端;format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号;
 
3.配置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的用户
 
4.运行SVN服务器
 
运行SVN服务
 
在命令行执行
 
svnserve --daemon --root F:/svn
 
服务启动,--daemon可简写为-d,--root可简写为-r,可以建立一个批处理文件并放在windows启动组中便于开机就运行SVN服务(注意:这是临时打开的服务,命令执行后不能关闭窗口)
 
用后台服务的方式可以设置开机自动执行。
 
D:/Program Files/Subversion/bin>sc create svnservice binpath= "d:/Program Files/Subversion/bin/svnserve.exe --service -r F:/SVN"
(sc 是windows中生成服务的命令)
 
就可以用net svnservice stop 或者start来启动服务了 也可以在Sevices.msc来启动了。
 
5、用客户端访问
 
格式:svn://服务器IP
 
 
 
---------------------------------------------------------------------------------------------------------
 
 
 
基于svnserve的服务器,权限文件authz配置的常见问题及解答  
 最近在我用Subversion论坛(http://www.iUseSVN.com/bbs)经常有人提到这样的问题: 
为什么我的客户端没有写权限? 
为什么我的权限没有起作用?
 
总结他们的配置,发现 
都是用svnserve作为服务器, 
都在svnserve.conf中使用了authz-db选项
 
原因可能如下:
 
1,配置authz时,没有注意svnserve启动参数-r所指定的目录。 
这里有两种情况: 
A:-r直接指定到版本库(称之为单库svnserve方式) 
比如,有一个库project1,位于D:/svn/project1 
使用以下命令启动svnserve
 
[Copy to clipboard] [ - ]CODE: 
svnserve -d -r D:/svn/project1 
在这种情况下,一个svnserve只能为一个版本库工作 
authz文件如果配置成下面这样就是错的,
 
[Copy to clipboard] [ - ]CODE: 
[groups] 
admin=user1 
dev=user2 
[project1:/] 
@admin=rw 
@doc=r 
应该配置成
 
[Copy to clipboard] [ - ]CODE: 
[groups] 
admin=user1 
dev=user2 
[/] 
@admin=rw 
@doc=r 
因为[project1:/]表示库project1的根目录,而按上面的启动参数,是没有库的概念的。 
使用类似这样的URL:svn://192.168.0.1/ 即可访问project1
 
B:-r指定到版本库的上级目录(称之为多库svnserve方式) 
同样,有一个库project1,位于D:/svn/project1 
如果使用以下命令启动svnserve
 
[Copy to clipboard] [ - ]CODE: 
svnserve -d -r D:/svn 
这种情况,一个svnserve可以为多个版本库工作, 
这时如果想限制指定库的指定目录,就应该指定具体的库,像这样
 
[Copy to clipboard] [ - ]CODE: 
[groups] 
admin=user1 
dev=user2 
[project1:/] 
@admin=rw 
@doc=r 
如果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录 
使用类似这样的URL:svn://192.168.0.1/project1 即可访问project1 
这样的URL:svn://192.168.0.1/project2 即可访问project2
 
2,对中文目录进行权限控制时,没有将权限文件authz改为utf-8格式。
 
svn对于非英文文件名和目录名使用utf-8格式编码处理,要对中文目录进行正确控制, 
应该使用无BOM的utf-8格式,如何将默认的文件转为utf-8, 
我使用的是UltraEdit的菜单"ASCII to UTF-8 (Unicode Editing)"。在UltraEdit的配置中,可以设置有无BOM 

Windows 下 SVN 服务器配置

标签:

原文地址:http://www.cnblogs.com/fjping0606/p/4428514.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!