Windows下架设SVN服务器并设置开机启动

最后都变了- 提交于 2019-12-06 21:51:14
1、安装SVN服务器,到 http://subversion.apache.org/packages.html Subversion for Windows

下载windows版的SVN,并安装,在命令行下运行svn命令,如下所以,则svn服务器安装成功。

C:\Documents and Settings\Administrator>svn   
使用“svn help”得到用法。  
         
2、创建仓库Repository:运行命令  ( 注意:单仓库和多仓库模式——可参考文档SVN教程

C:\Documents and Settings\Administrator>svnadmin create G:\svn  

该命令会在G盘下自动创建一个名字为svn的文件夹,该文件中的内容如非必要,不要手动修改,其内容是由svn自动维护的,各自得用途:

conf里文件夹中都是这个仓库的配置文件。

db是真正用来存储数据版本的地方。

hooks文件夹中的内容用以定义某些动作触发的hook脚本。

locks中的文件用于在某些分支或者文件上加锁。   

3、创建用户:进入conf目录(本例中是G:\svn\conf),打开svnserve.conf文件,找到如下内容:

[general]   
### These options control access to the repository for unauthenticated   
### and authenticated users.  Valid values are "write", "read",   
### and "none".  The sample settings below are the defaults.   
# anon-access = read   
# auth-access = write   
### The password-db option controls the location of the password   
### database file.  Unless you specify a path starting with a /,   
### the file's location is relative to the directory containing   
### this configuration file.   
### If SASL is enabled (see below), this file will NOT be used.   
### Uncomment the line below to use the default password file.   
# password-db = passwd  



# anon-access = read   
# auth-access = write   

# password-db = passwd  

中的注释去掉修改为

anon-access = read   
auth-access = write   

password-db = passwd  

这样就可以使用passwd文件中的用户了。

打开passwd(和svnserve.conf在同目录下),可以看到,创建好的两个用户都被注释掉了,可以修改者两个用户,也可以新建自己的用户,这里我新创建了一个自己的用户,passwd文件被修改为:

[users]  
# harry = harryssecret  
# sally = sallyssecret  

admin=admin  

4、用户权限配置

在每个仓库下:有一个conf文件夹,下面有三个文件

svnserve.conf        (svn配置文件)
authz            (授权)
passwd            (认证)

1)先配置svn配置文件----- svnserve.conf

anon-access = none        禁用匿名用户访问(必须提供身份)    三种:none、read、write
password-db = passwd    开启认证功能(到passwd文件里认证)
authz-db = authz        开启授权功能(到authz文件里授权)

2)再配置认证文件------- passwd

[users]
# harry = harryssecret
# sally = sallyssecret
用户名 = 密码
xiaoqiang = 111
xiaoming = 222
xiaozi = 333

3)配置授权文件-------- authz

# [/foo/bar]
# harry = rw
# &joe = r
# * =

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r

[groups]
group1=人员A,人员B
group2=人员C

[仓库名:/]
@group1 = rw
@group2 = r
* =

[groups]
mygroup1=xiaoqiang,xiaoming
mygroup2=xiaozi

[public:/]
@mygroup1 = rw
@mygroup2 = r
* =

xiaoqiang和xiaoming可以对public目录文件下载和提交;
xiaozi只能该目录文件下载;

5、启动SVN服务器,运行命令svnserve -d -r G:\svn,就可以启动服务

C:\Documents and Settings\Administrator>svnserve -d -r G:\svn  

-d表示后台运行,-r表示以超级管理员的方式运行,G:\svn是指SVN所管理的仓库。

6、配置SVN服务器开机启动

打开一个DOS窗口,在任意目录下执行下面的命令:

//在命令中的每一个等号后面都要有一个空格否则命令执行失败  

sc create svnserve binPath= " \" C:\Program Files\Subversion\bin\svnserve.exe \" --service --root d:\svnstore" displayname= "SVNServe" 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表示开机后自动运行。

安装服务后,svnserve要等下次开机时才会自动运行。

若要卸载svn服务,则执行 sc delete svnserve 即可

实例:

启动服务:
svnserve -d -r F:\Subversion\myapp

开机启动服务:
sc create svnserve binPath= "\"F:\Subversion\server\bin\svnserve.exe\" --service --root F:\Subversion\myapp" displayname= "SVNServe" depend= Tcpip start= auto

删除启动启动:
sc delete svnserve

这样SVN的配置就完成了,到 http://tortoisesvn.net/downloads.html 下载一个SVN客户端,就可以使用了。


另附:SVN服务器开机启动说明

创建autoRunSVN.bat文件,内容是: sc create MySVNServer binpath= "\"C:\Program FilesSubversion\svnserve\svnserve\" --service -r H:\homerepos" displayname= "SVNService" depend= Tcpip start= auto pause

注意之处:

(1)sc是windows自带的服务配置程序,MySVNServer 是服务的名称,似乎没什么用。

(2)参数binPath表示svnserve可执行文件的安装路径,由于路径中的"Program Files"带有空格,因此整个路径需要用双引号引起来。而双引号本身是个特殊字符,需要进行转移,因此在路径前后的两个双引号都需要写成\" 。

(3)--service参数表示以windows服务的形式运行,--r指明svn repository的位置,service参数与r参数都作为binPath的一部分,因此与svnserve.exe的路径一起被包含在一对双引号当中,而这对双引号不需要进行转义。

(4)displayname表示在windows服务列表中显示的名字, depend =Tcpip 表示svnserve服务的运行需要tcpip服务,start=auto表示开机后自动运行。安装服务后,svnserve要等下次开机时才会自动运行。

(5)binPath的等号前面无空格,等号后面有空格 displayname depend start也都一样 service前面是--,不是- ,而r前面是-

(6)若要卸载svn服务,则执行 sc delete svnserve 即可。

(7)从“sc”到“auto”是在同一个命令sc,必须写在同一行。 创建成功后,可以在运行中键入service.msc察看系统服务,找到SVNService项,查看这项服务的属性,可以使用Windows提供的界面操作SVNService服务了。

也可以使用命令行启动、停止服务。

启动服务: C:\>net start svnservice SVNService 服务正在启动 . SVNService 服务已经启动成功。

停止服务: C:\>net stop svnservice SVNService 服务正在停止. SVNService 服务已成功停止。

删除创建的服务 C:\>sc delete svnservice

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!