原文引自: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:/]改为[/]既可以了,[/]代表根目录下所有的资源,如果要限定资源,可以加上子目录即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?