乐趣区

关于svn:Linux搭建SVN服务器详细教程

前言

本文解说 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 服务器具体教程的所有内容,心愿对大家有所帮忙。

你学“废”了么?


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

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


退出移动版