TortoiseSVN安装和配置

时间:2024-03-16 08:12:54

之前安装过svn,今天在安装时,居然搞了半天,还是觉得有必要记录一下,主要是版本库中的配置文件

1.安装TortoiseSVN很简单,百度上一大把文章,不会的可以搜下,主要说下配置文件

2.svn安装好后,需要创建版本库,两种方式,第一种,手动创建,在需要的目录下创建一个文件夹,然后鼠标右键选择TortoiseSVN中的create repository here,会在文件夹下生成一些文件夹,conf,db,hooks,locks等,conf下有四个配置文件,后面会说怎么配置。第二种方式,在cmd上使用命令svnadmin create D:/svn/repository创建版本库,后面为创建的版本库。注:建立版本库的路径中的文件,文件名不能有空格,否则会建立不成功的。

3.配置用户和权限(设置配置时,等号前后需要有空格,否则会报错)

A.首先配置svnserve.conf

在D:/svn/repository/conf(这是我当时创建的版本库路径,具体根据自己实际创建的)打开svnserve.conf

[general]

anon-access = none        //未验证用户无任何权限 ,如果这里不改,用户不用输入密码即可获得代码版本。

auth-access = write      //已验证用户给予写权限

password-db = passwd    //密码数据存放到passwd文件中

authz-db = authz         //指定用户保存路径为authz文件,这个需要有,不然配置未验证用户无任何权限,无法连接svn服务器,报authentication failed错误,即无权限。启动服务器后需要,需重启服务器。

注:可以将上面的内容复制到svnserve.conf尾部,也可在svnserve.conf中,将上面项前面的#去掉即可,其中可以写成anon-access=read,表示无验证用户有读的权限。去掉#前面不能有空格,后面也不能有空格,否则会报错。修改svnserve.conf需要重启svn服务器。

B.配置passwd文件

原来配置:    

[users]

#harry = harryssecret

#sally = sallyssecret

“=”号前面是用户名,后面是密码。

[users]

zhangsan = 123456      //账户 = 密码  (例如)

C.配置authz文件(权限文件)

需要配置两处,一个是组和用户的设置,另一个是版本库的目录格式配置以及权限分配。

a.组和用户配置。
(1)一个组group可以包含一个和多个用户,其中用户名必须在用户配置文件中已经定义。
(2)可以将指定具体组,比如开发组和运维组等。

b.版本库配置以及权限分配。
版本库目录格式为  :
[版本库:/项目/目录]
用户名 = 权限
@组名 = 权限
说明:
(1)权限,分为r,w,rw和空。空代表没有任何权限
(2)版本库目录多种写法,如果只写根/代表对这个项目以及下边所有目录都有权限,如果单独制定目录,可以加上具体目录名。
其中根是svn启动的时候我们指定的-r指定的版本库。
举例如下:

[/]   代表根目录下的资源都可以访问
[repo0:/] 代表对repo0所有版本库设置权限权限
[repo0:/21yunwei]  代表对repo0版本库下的21yunwei项目设置权限
[repo0:/21yunwei/demo]  代表对repo0版本库下的21yunwei项目的demo目录设置权限

21yunwei = r    #代表admin对上面的目录(根目录下)的资源只有读权限 

TortoiseSVN安装和配置

4.TortoiseSVN  Repository Brower :url 中输入svn://127.0.0.1,再输入账户密码,也可访问。

5.自动启动svn服务器

cmd输入以下命令:

sc create SVNservice binpath= "D:/Program Files/TortoiseSVN/bin/svnserve.exe --service -r D:\svn\repository" displayname= "SVNservice" depend= Tcpip start= auto

解释:SVNservice 为服务的名称。所有的系统服务可以在dos下通过命令手动启动和停止。

启动:net start SVNservice 停止:net stop SVNservice

binpath为安装subversion的路径,可执行文件的路径。

D:\svn\repository为版本库的路径。

displayname= "SVNservice"为注册成的系统服务显示名称,注册成功后,可以在系统服务中找到这个名称。

depend= Tcpip为依赖Tcpip协议。

start= auto为注册成的系统服务启动类型为自动。

删除服务:sc delete SVNservice

6.svn报authentication failed错误,就是authz权限没配置对,或者是svnserve.conf文件修改了,没有重新启动。