服务器上已经配置了git,但是git对C#的管理不是很友好。
我就想到了svn。
这里记录一下centos7安装svn的过程。
1. 安装SVN服务端
检查是否已安装
rpm -qa subversion
安装SVN服务器
yum install subversion
查看版本
svnserve –version
2. 代码库创建
安装后要创建代码库,根据自己要放置的路径创建代码库文件夹
mkdir -p /svn
创建一个svn代码库
svnadmin create /svn
执行后,自动建立库,查看/svn文件夹包含了conf,db,format,hooks,locks,README.txt等文件,说明一个SVN库已经建立。
3:配置版本库
进入上面conf文件夹下,进行配置
3.1 配置用户
编辑passwd文件,如admin=admin,前面是用户名后面是密码
vi passwd
修改后如下
[users] # harry = harryssecret # sally = sallyssecret admin=admin gc = gc
3.2 权限控制
编辑authz文件
vi authz
表示根目录及以下,根目录是svnserve启动时指定的,我们指定的是/svn; 就是指对全部版本库都具有权限
[groups] team=admin,gc [/] @team=rw
权限配置文件中出现的用户名必须已在用户配置文件中定义。
对权限配置文件的修改立即生效,不必重启svn。
3.3 服务配置
vi svnserve.conf
修改后如下
[general] #匿名访问的权限,可以是read,write,none,默认为read anon-access=none #使授权用户有写权限 auth-access=write #密码数据库的路径 password-db=passwd #访问控制文件 authz-db=authz #认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字 realm=/svn
PS: 注意标签不能错,不能有重复,不然无法连接
4:SVN端口
端口默认3690,需查看服务器是否开启3690端口。
这个之前博客中有写,有需要,移步《centos7.4修改ssh登录默认端口》
5:测试SVN
启动svn
svnserve -d -r /svn
查看进程
ps -ef|grep svnserve
重启
killall svnserve #停止 svnserve -d -r /svn #启动
设置开机启动
systemctl enable svnserve.service
6:安装及使用过程中遇到的bug
这里着重说一下我使用svn时遇到的问题:
(1):本地下载SVN代码链接形式
如果这样写:
http://192.168.1.10/AMC
报错:
正确的写法是:
svn://47.100.219.44/AMC
(2):启动SVN命令
我的版本库建立在/svn/AMC中
我这里启动SVN命令使用的是
svnserve -d -r /svn/
本地下载代码时报错:
输入
killall svnserve
命令停止svn运行
启动svn我输入命令
svnserve -d -r /svn/AMC/
本地下载代码时报错
因为链接不存在。
为什么不存在呢?百思不得其解。
其实原因很简单,启动svn命令的路径和你下载代码输入链接的路径不一致。
比如 启动svn的命令输入
svnserve -d -r /svn/
这就相当于启动svn的时候将根目录设置为/svn/
那么本地下载代码时;链接就应该输入
Svn://192.168.1.10/AMC
同理启动svn的命令输入
svnserve -d -r /svn/AMC
那么本地下载代码时;链接就应该输入
Svn://192.168.1.10/
(3):确认SVN版本仓库是否搭建完成
将下载代码是的SVN仓库链接中的svn换成http在浏览器中打开
例如
Svn://192.168.1.10/
换成
http:// 192.168.1.10/
在浏览器中打开,出现如下图所示:表明svn搭建成功
至此,SVN 在服务端配置完毕
如果在本地上传或下载代码的时候遇到权限问题。请将svn仓库的权限改为可读可写可执行
Chmod -R 777 /svn/AMC