Linux搭建SVN服务器详细教程

您所在的位置:网站首页 eth服务器搭建 Linux搭建SVN服务器详细教程

Linux搭建SVN服务器详细教程

2023-06-04 10:24| 来源: 网络整理| 查看: 265

前言

本文讲解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 复制代码

Linux系统各目录知识延伸:

所以,将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。

认证域知识延伸:

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

修改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软件,创建一个本地目录,右键选择SVN Checkout测试下,URL填写svn://IP/dev,dev替换成你创建的版本库名称。

输入passwd配置好的用户。

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

扩展 设置查看log日志

想查看提交的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服务器详细教程的所有内容,希望对大家有所帮助。

你学“废”了么?

文章首发于我的博客 echeverra.cn/svnserve,原创文章,转载请注明出处。

欢迎关注我的微信公众号 echeverra,一起学习进步!不定时会有资源和福利相送哦!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3