Centos服务器搭建SVN仓库

146 阅读2分钟

介绍

官网介绍:
Apache Subversion 最初是一个功能齐全的版本控制系统 旨在成为更好的 CVS。从那时起,Subversion 已经超出了其最初的目标 替换 CVS,但其基本模型、设计和接口保持不变 深受这一目标的影响。即使在今天,Subversion 也应该 对于CVS用户来说,仍然感到非常熟悉。

安装

在centos上安装SVN是一件非常简单的事情,可以参考Apache Subversion 二进制包进行安装。

  • CentOS 项目(客户端和服务器)

    $ yum install subversion
    $ yum install mod_dav_svn
    

    对于服务端只需要执行yum install subversion即可。

配置

SVN仓库的配置相对来说比较复杂。

  • 设置SVN仓库根目录
mkdir -p /var/svn/myrepo

OPTIONS="-r /var/svn/myrepo"添加到/etc/sysconfig/svnserve文件中

vim /etc/sysconfig/svnserve
  • 创建SVN版本库
svnadmin create /var/svn/myrepo/projectA

/var/svn/myrepo只是svn的一个根目录,具体的项目仓库我们可以在myrepo文件夹中使用svnadmin create新建,命令执行完后会出现projectA目录,并且目录中出现以下文件:

image.png
我们主要对conf目录中的3个文件进行修改配置。

image.png

  • 配置用户 在authz文件中添加:
[groups]  
admin = user1,user3
dev = user2,user4

[/]
@admin = rw  
@dev = r  

[groups] 表示组,当前组中有两个用户组admin和dev,admin中包含用户user1和uesr3。dev用户组包含user2和user4。 [/]表示根目录。即admin用户组对根目录有读写的权限,dev对根目录有读的权限。
在passwd文件中添加:

[users]  
user1 = password1  
user2 = password2
user3 = password3
user4 = password4

给用户设置密码。 修改svnserve.conf文件:

[general]  
anon-access = read  # 禁止匿名访问  
auth-access = write # 授权用户具有写权限  
password-db = passwd # 密码文件位置  
authz-db = authz # 权限文件位置  
realm = projectA # 认证域名称,创建的项目仓库目录名
  • 启动
svnserve -d -r /var/svn/myrepo
#或者
systemctl start svnserve

svn默认端口是3690,如果开启了防火墙记得开放端口。 当然在启动的时候也可以指定svn使用的端口。

svnserve -d --listen-port 8083 -r /var/svn/myrepo --log-file=/var/log/svn.log

验证

使用TortoiseSVN download | SourceForge.net进行checkout操作。

  • 获取svn仓库地址 以porjectA项目位列,svn的地址是: svn://127.0.0.1:3690/var/svn/myrepo/projectA。
    但是在这之前我们已经把/var/svn/myrepo设置成了根目录,所以地址中这部分可以省去。同时3690是默认端口,也可以不用加。最后仓库地址就变成了:
    svn://127.0.0.1/projectA
  • 使用TortoiseSVN checkout:

image.png
点击OK会弹出密码验证弹窗,正确输入,验证通过,便可以将仓库同步下来。

image.png