SVN服务端配置

有两种方法创建 SVN 服务器端。
  
  第一种是傻瓜式的安装 VISUALSVN SERVER,这个服务器端是免费的,而客户端VISUALSVN好像是不免费的。其实 VISUALSVN SERVER 就是集成了 Subversion 和 apache 的可视化管理界面。 服务器下载地址为:http://www.visualsvn.com/server/download。由于这个是可视化管理界面,在这里就不作过多的介绍。

  第二种就是手动安装 Subversion,如果有需要的话,继续安装Apache,前者使用svn协议,后者可提供http访问。具体步骤如下:
1.下载安装
 下载目前最新版本,Setup-Subversion-1.6.6.msi,安装之。此版本兼容Apache2.2.x
2.建立版本库(Repository)
 在命令行输入 svnadmin create d:\SVN\Repository,建立版本库。使用svnadmin help可以查看命令。当前版本Subversion支持两种格式数据库,一种是FSFS(默认),另外一种是BDB( Berkeley Database)。如果需要改变,则使用 --fs-type 参数。
 说明:必须先建好路径d:\SVN\Repository,否则会提示找不到路径的错误。
 我们也可以使用图形化TortoiseSVN来完成这一步:在目录d:\SVN\Repository下"右键->TortoiseSVN->Create Repository here, 然后可以选择版本库模式, 这里使用默认即可,然后就创建了一系列目录和文件。
3.配置用户权限
首先说明,以下配置,在实际操作中,均应顶头写,即配置语句不能与文档左边留有空格,否则在import时报错:D:\SVN\Repository\conf\svnserve.conf:12: Option expected。
a.来到E:\svn\sise_repository\conf目录,修改svnserve.conf,去掉注释符#,以及后面的空格:
Java代码
# anon-access = read    //匿名用户只能读  
# auth-access = write   //通过验证的用户才能有读写的权限   
# password-db = passwd  //使用的password文件  
# authz-db = authz      //使用的权限文件 

# anon-access = read    //匿名用户只能读
# auth-access = write   //通过验证的用户才能有读写的权限
# password-db = passwd  //使用的password文件
# authz-db = authz      //使用的权限文件


b.然后修改同目录的passwd文件,在
# [users]
# harry = harryssecret
# sally = sallyssecret
后面添加:
Java代码
[users]  
admin = admin   
dev1 = dev1  
dev2 = dev2  

[users]
admin = admin
dev1 = dev1
dev2 = dev2


c.修改同目录下的authz文件来设置访问权限
在[groups]下创建用户组,例如:
Java代码
[groups]   
Admin=admin   
Developer=dev1,dev2  

[groups]
Admin=admin
Developer=dev1,dev2

以上便创建了两个用户组,分别是admin和developer和其相应的组的成员。
设置访问路径
Java代码
[/]   
*=r   
@admin=rw  

[/]
*=r
@admin=rw

如上所示,所有的用户对整个svn目录下的文件有读权限,admin组有读写的权限(“*”代表所有的用户,r代表读 w代表写)
可设置具体的版本库的访问权限如下:
[RepositoryA:/]
@developer=rw
如上设置,表示所有developer组的成员对于“RepositoryA”下边的所有文件都有读写的权限

4.运行SVN服务器
在命令行敲入:svnserve -d -r E:\svn\sise_repository\ ,即可在任务管理器中看到svnserve.exe服务了。但是,这样,命令行窗口就不能关闭,并且每次都要手动启动,所以可将其注册为Windows服务来解决,具体见另一篇文章。

5.导入工程
使用图形化TortoiseSVN,右击需要导入的项目根文件夹-->TortoiseSVN-->Import...,填入相应的用户及密码即可,注意要有写权限,如上面的admin用户才可以导入。


注册svnserve为windows服务

打开一个DOS命令窗口,执行如下命令:
Java代码
sc create svnserve binPath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service --root F:\svn_repository_server" displayname= "Subversion Repository" depend= Tcpip start= auto 

sc create svnserve binPath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service --root F:\svn_repository_server" displayname= "Subversion Repository" depend= Tcpip start= auto

  其中:sc是windows自带的服务配置程序,参数binPath表示svnserve可执行文件的安装路径,由于路径中的"Program Files"带有空格,因此整个路径需要用双引号引起来。而双引号本身是个特殊字符,需要进行转移,因此在路径前后的两个双引号都需要写成\",--service参数表示以windows服务的形式运行,--root指明svn repository的位置,service参数与root参数都作为binPath的一部分,因此与svnserve.exe的路径一起被包含在一对双引号当中,而这对双引号不需要进行转义。
  displayname表示在windows服务列表中显示的名字,不是任务管理器中的名字。 depend= Tcpip 表示svnserve服务的运行需要tcpip服务,start= auto表示开机后自动运行。若要卸载svn服务,则执行 sc delete svnserve 即可。
  sc对选项的格式还有要求,例如“depend= Tcpip”不能写为“depend =  Tcpip”或“depend=Tcpip”,也就是“=”前不能有空格,而后面必须有空格。

猜你喜欢

转载自lizhenghua168.iteye.com/blog/777376