一、检查是否已经有svn
# svnserve --version
-bash: svnserve: command not found
二、安装
在Linux下安装的是subversion,直接用yum 安装即可
# yum install -y subversion
三、检查安装是否成功
# svnserve --version
svnserve, version 1.6.11 (r934486)
compiled Aug 17 2015, 08:37:43
Copyright (C) 2000-2009 CollabNet.
四、创建svn资源仓库
# cd /var
# mkdir svn
# cd svn
# mkdir project
# svnadmin create /var/svn/project
# cd project
# ls
conf db format hooks locks README.txt
# cd conf
# ls
authz passwd svnserve.conf
五、新增用户及密码,配置权限
- authz 是权限控制文件
- passwd 是帐号密码文件
- svnserve.conf 是SVN服务配置文件
vim passwd
[users]
test1=123456
# vim authz
[/]
test1=rw
vim svnserve.conf
打开下面的5个注释
anon-access = read #匿名用户可读,但是 子目录showlog 会报错Item is not readable
或者
anon-access = none #可以查看showlog
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/project # 认证空间名,版本库所在目录
- 最后一行的realm记得改成你的svn目录
- 打开注释时切记前面不要留有空格
六、启动svn服务
# svnserve -d -r /var/svn
注意不要指定到具体的代码库目录
正确:svnserve -d -r /var/svn/
错误:svnserve -d -r /var/svn/project
停止svn
# killall svnserve
上述启动命令中,-d
表示守护进程, -r
表示在后台执行
停止还可以采用杀死进程的方式:
# ps -ef | grep svnserve
root 4908 1 0 21:32 ? 00:00:00 svnserve -d -r /var/svn
root 4949 4822 0 22:05 pts/0 00:00:00 grep svnserve
# kill -9 4908
七、checkout 代码根目录
假如svn服务器的ip是192.168.1.120
1、在服务器上checkout
# svn checkout svn://192.168.1.120/project/
Checked out revision 0.
2、在本地客户端checkout
这里使用TortoiseSVN,输入地址svn://192.168.1.120/project/ 即可
八、问题如果出现
Unable to connect to a repository at URL 'svn://192.168.1.120/project'
可能是端口问题导致无法成功checkout项目
1、打开阿里云控制台,看看有没有允许3690的端口
2、查看防火墙
查看防火墙状态:
# /etc/init.d/iptables status
编辑防火墙配置文件,添加一行3690端口记录
# vim /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp --dport 3690 -j ACCEPT
重启iptables:
# /etc/init.d/iptables restart
九、多个项目时
mkdir /var/svn/conf
//把两个权限配置文件复制到 /var/svn/conf路径下统一管理所有代码仓库
cd /projcet1/conf
cp authz passwd /var/svn/conf
5.修改配置文件
vi svnserve.conf
打开下面的几个注释(同时要删除#后面的空格):
anon-access = none
auth-access = write #授权用户可写
password-db = /var/svn/conf/passwd #使用哪个文件作为账号文件 统一使用密码文件
authz-db = /var/svn/conf/authz #使用哪个文件作为权限文件