Linux搭建SVN服务器详细教程
SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,实现最终集中式的管理。
目前很多互联网公司在使用SVN,优点在于使用方便、易于管理。与之对应的分布式的版本控制系统Git则更加灵活。
搭建
安装SVN
//Ubuntu
apt-get install subversion
//Centos
yum install subversion
查看是否安装成功,可以查看版本。
svnserve --version
提示版本1.13.0,说明已安装成功。
创建版本库目录
创建SVN版本库目录,为后面创建版本库提供存放位置,也是最后启动SVN服务的根目录。
我们在/usr路径下创建svn目录作为版本库目录。
cd /usr
mkdir svn
所以,将SVN库存放在用户文件目录/usr下比较合理
创建SVN版本库
在上一步建立路径基础上,创建版本库,如dev。
cd /usr/svn
svnadmin create dev
创建成功后,可以查看到dev目录下生成的文件。
修改SVN配置
进入conf目录,查看需要修改的配置文件。
cd /usr/svn/dev/conf
ls
配置文件:
- authz:权限配置文件,控制读写权限
- passwd:账号密码配置文件
- svnserve.conf:svn服务器配置文件
修改svnserve.conf文件
vim svnserve.conf

去掉anon-access、auth-access、password-db、authz-db、realm几项前的注释符号“#”。
配置项含义:
- anon-access = none|read|write 决定非授权用户的访问级别。none 表示无访问权限,read 表示只读,write 表示可读可写,默认为 read。
- auth-access = none|read|write 决定授权用户的访问级别,使用与上面相同的访问级别。默认为 write。
- password-db = filename 指定账号密码数据库文件名。filename 是相对仓库中 conf 目录的位置,也可以设置为绝对路径,默认为passwd。
- authz-db = filename 指定权限配置文件名,filename 是相对仓库中 conf 目录的位置,也可以设置为绝对路径,默认为authz。
- realm = realm-name 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的账号密码数据库文件passwd。
vim passwd

只需在末尾添加账号和密码,格式 账号 = 密码,如user1 = 123456,可添加多个。
修改authz文件
vim authz
在根目录下设置user1、user2读写权限:(注意:[/]也是必须的)

如果用户比较多,可以使用groups形式设置分组team1,并在根目录下指定分组@team1的权限:

如果想设置其他用户的权限,可以通过*设置,如设置除@team1分组外其他用户只读权限:
[/]
@team1 = rw
* = r
启动SVN服务
执行SVN启动命令,其中参数-d表示以守护进程的方式启动, -r表示设置的根目录。
svnserve -d -r /usr/svn/
关闭svn命令:
killall svnserve
检测svn端口3690是否已经监听:
netstat -antlp|grep svnserve
netstat -antlp|grep 3690
ps -ef | grep 'svnserve'本地访问SVN服务
在windows系统中,安装TortoiseSVN软件,创建一个本地目录,右键选择SVN Checkout测试下,URL填写svn://IP/dev,dev替换成你创建的版本库名称。


输入passwd配置好的用户。

Checkout completed,SVN访问成功,这就Nice了~


Ubuntu防火墙设置开放端口:3690
防火墙设置:https://blog.upx8.com/3180
开放端口:3690
相关文档
评论与补充0
有问题或想补充的,写在下面 · 选中正文文字再点「报告错误」会自动引用还没有评论。有疑问、补充,或者发现错字,都可以写在下面。