Subversion svnserve 服务配置 整理
- 安装是SVN和TortoiseSVN
下载SVN服务器安装文件:Setup-Subversion-1.6.17.msi ,运行安装。
下载客户端安装文件:TortoiseSVN-1.6.16.21511-win32-svn-1.6.17.msi,然后运行安装,安装成功后必须重启计算机。也可以根据需要加载中文语言包(不建议使用)。
2. 创建SVN资源库
SVN资源库(版本库)的创建有两种方式:命令行方式和客户端方式。
命令行方式:svnadmin create D:\svn\repos(注意目录路径名区分大小写)
客户端方式:通过TortiseSVN来创建,在本地新建目录D:\svn\repos,选中文件夹repos,右击“TortoiseSVN——Create repository here”
3. 创建基于windows服务svnserver服务
运行cmd命令输入:sc create svnserve binpath= "C:\Subversion\bin\svnserve.exe --service --root D:\svn\repos" displayname= "svnserve" depend= tcpip start= auto
上述命令可以实现名为“svnserve”服务的后台创建和自动启动。但是需要注意下列两点:
a. 如果任意的路径中含有空格,需要使用 转义字符\,如:
sc create svnserve binpath= "
\"C:\Program Files\Subversion\bin\svnserve.exe\"
--service --root c:\repos" displayname= "Subversion"
depend= tcpip start= auto
b.
注意 sc
的命令行很特殊。在 key= value
对中,key 与 =
之间不能有空格,但是在 value 之前,必须有空格。
4 . 用户的管理
在 Subversion 的使用当中,存在“认证”、“授权”两个概念。认证,即 authentication,是指用户名与密码的认证。授权,即authorization ,是指某用户
是 否具备读、写权限的一种审核。这两者配合作用,就组成了 Subversion 的整个账户管理体系。
为了使用用户及权限管理功能文件,必须在服务器端打开D:\svn\ repos\conf\svnserver.conf,去掉下面四行前面的注释,并去掉前面的空格:
# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz
并将read参数修改为none,表明禁止匿名用户访问版本控制库。
password-db = passwd表示用户名和密码所在的资源文件,后面的passwd就是所设定的文件,会在svnserver.conf文件所在的目录下找到上述文件,后面也可以配置成 passwd文件所在目录的路径的形式,如../passwd,表示在svnserver.conf的上级路径的目录下
authz-db = authz表示授权文件,主要设置用户组’及用户组对于特定目录的权限.
打开passwd文件,
添加如下形式: zsf = ustb
zsf是设定的用户名,ustb是密码。zsf前面不要留空格。
注意:
权限配置文件中出现的用户名必须已在用户配置文件中定义。
对权限配置文件的修改立即生效,不必重启svn。
为了实现多项目的权限管理,多个项目共享相同的位于根资源库下的配置及认证文件。
5. 权限的配置
Subversion 提供了面向目录的账户权限管理功能,通过它,我们就可以很精确地实现项目目录的访问控制。
创建完资源库后,出现的authz为认证后的账户访问权限授权文件。
假设目录结构如下:
Project
dev
test
test1
test2
要求:
1、admin对所有目录可读可写
2、 Dev_group对dev目录可读可写,Test_group无权限
3、 Test_group对test目录可读可写,Dev_group无权限
打开D:\SVNServer\ repos\conf\authz,对上面的用户添加分组:
[groups]
# harry_and_sally = harry,sally
Admin_group = admin
Dev_group = sc1,sc2
Test_group1 = tom1, tom2
[/] //对根目录的权限控制
@admin_group = rw
* = r
[/Cloud /dev] //对具体目录的权限控制
@ Develop_group = rw
* = //其他用户无权限
[/Cloud/test] //对具体目录的权限控制
@ admin_group = rw
@ Test_group = r
* =
备注:
1、 如果需要控制的文件夹为中文名称,需要把authz转换为UTF-8格式,建议使用UltraEdit的“文件——转换——ASCII to UTF-8”(我尝试过记事本转换未遂)。
若project下新增文件夹,一定要对新文件夹增加权限控制,否则所有人默认为可读。
6. 数据段导入
择你的项目的顶层目录,右击打开上下文菜单。选择命令TortoiseSVN → 导入 ...,它会弹出一个对话框:
在弹出的对话框里面,根据提示输入 用户名和密码,确定后进行导入。