BZ易风

导航

 

原文引自:http://blog.csdn.net/sm_wang/article/details/78656120

参考:https://blog.csdn.net/lxfHaHaHa/article/details/67638493?utm_source=blogxgwz7

1.卸载原有SVN

查看自己是否安装了svn

 

 

 上图显示已安装,可用以下命令进行卸载

sudo apt-get remove --purge subversion  

(–purge 选项表示彻底删除改软件和相关文件)

2、安装SVN

安装前先更新一下

sudo apt-get update
sudo apt-get install subversion

3、创建SVN版本库

创建home下的svn文件夹

sudo mkdir  /home/svn

创建svn下的repository文件夹

sudo mkdir  /home/svn/repository

更改repository的权限(第一次搭建没有赋予权限,客户端访问服务器被拒绝)

sudo chmod -R 777 /home/svn/repository

创建版本库

sudo svnadmin create /home/svn/repository

完成后会在repository文件夹下生成以下文件

 

 

 

然后对db进行权限设置

sudo chmod -R 777 db

设置访问权限:需要对conf文件夹下的文件进行修改

 

 

 

 ①修改配置文件conf/svnserve.conf

sudo vim /home/svn/repository/conf/svnserve.conf

#匿名用户可读
anon-access = read(可改成none,即不可读)
#权限用户可写
auth-access = write
#密码文件为passwd
password-db = passwd
#权限文件为authz
authz-db = authz

(去掉前面的#,并且顶格,不然可能会报错)

②添加访问用户conf/passwd

sudo vim /home/svn/repository/conf/passwd 

③设置用户权限conf/authz

sudo vim /home/svn/repository/conf/authz

admin = smwang //用户smwang属于admin权限组
[/]        //这里改成[/]不然报错
@admin = rw //admin权限组的权限是读和写
* = rw 所有的组都具有读权限和写权限 
//这一段代码添加在[groups]下面       

4、测试SVN服务器

①启动服务器

svnserve -d -r /home/svn

(-d:表示在后台运行 ,-r:指定服务器的根目录)

用如下命令查看svnserve运行端口

netstat -ntlp

 

 

 因为我使用的是腾讯云主机,所以要去腾讯云的网上开放他的端口,如图,3690端口
进入腾讯云的管理网站->云主机->安全组->编辑规则

 

 

 这个时候我们就可通过svn://服务器ip/repository从svn客户端访问服务器了)

②停止服务器

如果需要关闭服务器,可以用下面的命令

killall svnserve

本地使用svn更新提交

本地随便新建个文件夹,然后检出

 

 

 输入svn地址,自己的公网ip/仓库名字

 

 

 

 输入账户密码,我这里用test1,123456

 

 

 

 

 

 ok,正常检出

上传文件

然后试一下上传文件,我在里面新建了一个1.txt,然后鼠标右键->svn commit

 

 

 

 

 

 

下载文件

把它删了,再下载回来看看,删掉之后,鼠标右键->svn update

 svn 认证失败

在svnserve.conf:文件中去掉authz-db = authz前面的#号,会出现的认证失败。

造成此原因的主要问题就是authz文件中权限没有配置好。

修改配置文件
svnserve.conf:
[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz

passwd
[users]
tom = tom
authz:
[groups]
project_1 = tom

[repository:/]
@project_1 = rw

访问
svn://主机IP/repository

则会出现认证失败

原因是:
svn://主机IP/repository 访问时找不到tom对应的库,就是因为[repository:/]不是一个有效的库路径
把 [repository:/]改为[/]既可以了,[/]代表根目录下所有的资源,如果要限定资源,可以加上子目录即可。

posted on 2021-03-29 17:51  BZ易风  阅读(436)  评论(0编辑  收藏  举报