序言
本文讲解Linux系统下怎样搭建SVN服务器linux查询数据库版本,详尽说明各配置项的功能,最终实现可管控多个项目的复杂配置。
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
复制代码
Linux系统各目录知识延展:
所以,将SVN库储存在用户文件目录/usr下比较合理。
创建SVN版本库
在上一步构建路径基础上,创建版本库,如dev。
cd /usr/svn
svnadmin create dev
复制代码
创建成功后,可以查看到dev目录下生成的文件。
更改SVN配置
步入conf目录,查看须要更改的配置文件。
cd /usr/svn/dev/conf
ls
复制代码
配置文件:
更改svnserve.conf文件
vim svnserve.conf
复制代码
去除anon-access、auth-access、password-db、authz-db、realm几项前的注释符号“#”。
配置项涵义:
认证域知识延展:
在SVN顾客端登陆时,会提示realm认证域,如右图的认证域MyFirstRepository。
更改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服务
在windows系统中,安装TortoiseSVN软件,创建一个本地目录linux查询数据库版本,右键选择SVNCheckout测试下,URL填写svn://IP/dev,dev替换成你创建的版本库名称。
输入passwd配置好的用户。
Checkoutcompleted,SVN访问成功,这就Nice了~
扩充设置查看log日志
想查看递交的svnlog日志硬盘安装linux,须要进一步配置。
编辑svnserve.conf,设置:
anon-access = none
复制代码
编辑authz文件中添加:
[/]
* =
复制代码
这样通过键盘右键TortoiseSVN->showlog就可以查看svn递交的历史记录了。
多个项目管控配置
SVN配置文件是很灵活的,假如想使用统一的帐户和权限去管控多个项目,可以将多个项目的authz和passwd文件统一放到一处,在多个项目的svnserve.conf文件中配置这两个文件的绝对路径,并在authz中对不同的项目设置用户访问权限。
如:a、b、c、d这4个用户,p1、p2两个项目,其中a、b只能访问p1linux系统编程,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软件,选择SVNCheckout测试。
访问项目p1 URL
svn://IP/p1
访问项目p2 URL
svn://IP/p1
复制代码
统一的配置文件,不同项目限定了不同用户访问,这样就实现了管控多个项目的SVN配置。
以上就是Linux系统搭建SVN服务器详尽教程的所有内容,希望对你们有所帮助。
你学“废”了么?