Linux搭建SVN服务器详细教程

caocao1年前教程263

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

//Ubuntu
apt-get install subversion
//Centos
yum install subversion

前言

本文将以极客的语气讲解如何在Linux系统下搭建SVN服务器,并详细说明各配置项的功能,最终实现对多个项目进行复杂配置的可管控性。SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,实现最终集中式的管理。目前许多互联网公司都在使用SVN,它的优点在于使用方便、易于管理。与之相对应的分布式版本控制系统Git则更加灵活。

搭建安装SVN

svnserve --version
cdlinux u盘启动需要操作系统吗
cd /usr
mkdir svn

要查看是否安装成功,可以查看版本。提示版本1.13.0,说明已安装成功。

创建版本库目录

创建SVN版本库目录,为后续创建版本库提供存放位置,也是最后启动SVN服务的根目录。我们在/usr路径下创建svn目录作为版本库目录。

cd /usr/svn
svnadmin create dev
cd /usr/svn/dev/conf
ls

Linux系统各目录知识延伸:

所以,将SVN库存放在用户文件目录/usr下比较合理。

创建SVN版本库

在上一步建立路径基础上,创建版本库,例如dev。创建成功后,可以查看到dev目录下生成的文件。

修改SVN配置

进入conf目录,查看需要修改的配置文件。

vim svnserve.conf
cdlinux u盘启动需要操作系统吗
vim passwd

配置文件:

修改svnserve.conf文件

去掉anon-access、auth-access、password-db、authz-db、realm几项前的注释符号“#”。

配置项含义:

认证域知识延伸:

在SVN客户端登录时,会提示realm认证域,例如下图的认证域My First Repository。

修改passwd文件

只需在末尾添加账号和密码,格式为 账号 = 密码,例如user1 = 123456,可添加多个。

修改authz文件

在根目录下设置user1、user2的读写权限:

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

如果想设置其他用户的权限,可以通过*设置,例如设置除@team1分组外其他用户只有读权限:

启动SVN服务

执行SVN启动命令,其中参数-d表示以守护进程的方式启动,-r表示设置的根目录。

关闭svn命令:

本地访问SVN服务

在Windows系统中,安装TortoiseSVN软件,创建一个本地目录,右键选择SVN Checkout进行测试,URL填写svn://IP/dev,dev替换成您创建的版本库名称。

cdlinux u盘启动需要操作系统吗cdlinux u盘启动需要操作系统吗
anon-access = none

输入passwd配置好的用户。

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

扩展设置查看log日志

想查看提交的SVN log日志,需要进一步配置。编辑svnserve.conf,设置:

[/]
* =
mkdir /usr/svn

编辑authz文件中添加:

这样通过鼠标右键TortoiseSVN->show log就可以查看SVN提交的历史记录了。

多个项目管控配置

SVN配置文件非常灵活,如果想使用统一的账户和权限来管理多个项目,可以将多个项目的authz和passwd文件统一放在一处,在多个项目的svnserve.conf文件中配置这两个文件的绝对路径,并在authz中对不同的项目设置用户访问权限。例如:a、b、c、d这4个用户,p1、p2两个项目,其中a、b只能访问p1,c、d只能访问p2。

创建版本库目录

cd /usr/svn
svnadmin create p1
svnadmin create p2
mkdir /var/svn/conf
cd /p1/conf
cp authz passwd /var/svn/conf
anon-access = none
auth-access = write 
password-db = /var/svn/conf/passwd 
authz-db = /var/svn/conf/authz 
realm = p1 
anon-access = none
auth-access = write
password-db = /var/svn/conf/passwd
authz-db = /var/svn/conf/authz
realm = p2
[users]
a = 123
b = 123
c = 123
d = 123

创建多个版本库

创建管理用户权限目录

修改配置文件

修改p1的svnserve.conf文件:

修改p2的svnserve.conf文件:

password-db和authz-db都使用统一管理用户权限目录的绝对路径。

修改password-db文件

[groups] //分组
p1user = a,b
p2user = c,d
[/]
* = #以上没有定义的用户都没有任何权限
[p1:/] //p1的访问控制,c、d无法访问
@p1user = rw
[p2:/] //p2的访问控制,a、b无法访问
@p2user = rw
svnserve -d -r /usr/svn/
访问项目p1 URL
svn://IP/p1
访问项目p2 URL
svn://IP/p1

修改authz文件

对password-db和authz文件的修改立即生效,不必重启SVN。

启动SVN服务

访问不同项目的SVN

同样使用TortoiseSVN软件,选择SVN Checkout进行测试。

相关文章

如何用 ISO 镜像制作 U 盘安装盘(通用方法、无需 WinPE)

如何用 ISO 镜像制作 U 盘安装盘(通用方法、无需 WinPE)

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 本文针对的是U盘,而不...

cdlinux教程.docx

cdlinux教程.docx

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 百度钱包最新福利,1分钱...

python版本的WiFi万能钥匙

python版本的WiFi万能钥匙

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 一、前言说明 本机运行环...

kali linux切换中文

回答1:Kali Linux是一个常用于渗透测试和网络安全评估的Linux操作系统。要汉化Kali Linux,可以按照以下步骤操作: 打开终端,运行以下命令更新系统软件包列表:sudo apt-g...