赞
踩
本文讲解 Linux 系统下如何搭建 SVN 服务器,详细说明各配置项的功能,最终实现可管控多个项目的复杂配置。
SVN 是 subversion 的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,实现最终集中式的管理。
目前很多互联网公司在使用 SVN,优点在于使用方便、易于管理。与之对应的分布式的版本控制系统 Git 则更加灵活。
- //Ubuntu
- apt-get install subversion
-
- //Centos
- yum install subversion
查看是否安装成功,可以查看版本。
svnserve --version
提示版本 1.13.0,说明已安装成功。
创建 SVN 版本库目录,为后面创建版本库提供存放位置,也是最后启动 SVN 服务的根目录。
我们在 /usr 路径下创建 svn 目录作为版本库目录。
- cd /usr
- mkdir svn
Linux 系统各目录知识延伸:
所以,将 SVN 库存放在用户文件目录 /usr 下比较合理。
在上一步建立路径基础上,创建版本库,如 dev。
- cd /usr/svn
- svnadmin create dev
创建成功后,可以查看到 dev 目录下生成的文件。
进入 conf 目录,查看需要修改的配置文件。
- cd /usr/svn/dev/conf
- ls
配置文件:
修改 svnserve.conf 文件
vim svnserve.conf
去掉 anon-access、auth-access、password-db、authz-db、realm 几项前的注释符号 “#”。
配置项含义:
认证域知识延伸:
在 SVN 客户端登录时,会提示 realm 认证域,如下图的认证域
My First Repository
。
修改 passwd 文件
vim passwd
只需在末尾添加账号和密码,格式 账号 = 密码
,如 user1 = 123456
,可添加多个。
修改 authz 文件
vim authz
编辑如果用户比较多,可以使用 groups 形式设置分组 team1,并在根目录下指定分组 @team1 的权限:
如果想设置其他用户的权限,可以通过 *
设置,如设置除 @team1 分组外其他用户只读权限:
- [/]
- @team1 = rw
- * = r
执行 SVN 启动命令,其中参数 -d
表示以守护进程的方式启动, -r
表示设置的根目录。
svnserve -d -r /usr/svn/
关闭 svn 命令:
killall svnserve
在 windows 系统中,安装 TortoiseSVN 软件,创建一个本地目录,右键选择 SVN Checkout 测试下,URL 填写 svn://IP/dev
,dev 替换成你创建的版本库名称。
输入 passwd 配置好的用户。
Checkout completed,SVN 访问成功,这就 Nice 了~
想查看提交的 svn log 日志,需要进一步配置。
编辑 svnserve.conf,设置:
anon-access = none
编辑 authz 文件中添加:
- [/]
- * =
这样通过鼠标右键 TortoiseSVN->show log 就可以查看 svn 提交的历史记录了。
SVN 配置文件是很灵活的,如果想使用统一的账户和权限去管控多个项目,可以将多个项目的 authz 和 passwd 文件统一放在一处,在多个项目的 svnserve.conf 文件中配置这两个文件的绝对路径,并在 authz 中对不同的项目设置用户访问权限。
如:a、b、c、d 这 4 个用户,p1、p2 两个项目,其中 a、b 只能访问 p1,c、d 只能访问 p2。
创建版本库目录
mkdir /usr/svn
创建多个版本库
- cd /usr/svn
- svnadmin create p1
- svnadmin create p2
创建管理用户权限目录
- mkdir /var/svn/conf
- cd /p1/conf
- cp authz passwd /var/svn/conf
修改配置文件
修改 p1 的 svnserve.conf 文件:
- anon-access = none
- auth-access = write
- password-db = /var/svn/conf/passwd
- authz-db = /var/svn/conf/authz
- realm = p1
修改 p2 的 svnserve.conf 文件:
- anon-access = none
- auth-access = write
- password-db = /var/svn/conf/passwd
- authz-db = /var/svn/conf/authz
- realm = p2
password-db 和 authz-db 都使用统一管理用户权限目录,使用绝对路径。
修改 password-db 文件
- [users]
- a = 123
- b = 123
- c = 123
- d = 123
修改 authz 文件
- [groups] //分组
- p1user = a,b
- p2user = c,d
-
- [/]
- * = #以上没有定义的用户都没有任何权限
-
- [p1:/] //p1的访问控制,c、d无法访问
- @p1user = rw
-
- [p2:/] //p2的访问控制,a、b无法访问
- @p2user = rw
对 password-db 和 authz 文件的修改立即生效,不必重启 svn。
启动 svn 服务
svnserve -d -r /usr/svn/
访问不同项目 SVN
同样 TortoiseSVN 软件,选择 SVN Checkout 测试。
- 访问项目p1 URL
- svn://IP/p1
-
- 访问项目p2 URL
- svn://IP/p1
统一的配置文件,不同项目限定了不同用户访问,这样就实现了管控多个项目的 SVN 配置。
以上就是 Linux 系统搭建 SVN 服务器详细教程的所有内容,希望对大家有所帮助。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。