原文引自: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:/]改为[/]既可以了,[/]代表根目录下所有的资源,如果要限定资源,可以加上子目录即可。