基于 CentOS 7.2 搭建 SVN 服务器

SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。本实验带您一步步搭建属于自己的 SVN 服务器。

任务大纲

1、安装 SVN 服务端(耗时:1min ~ 2min)

2、创建 SVN 版本库(耗时:1min ~ 2min)

3、配置 SVN 信息(耗时:2min ~ 5min

4、启动 SVN 服务(耗时:2min ~ 5min)

5、部署完成耗时:时间未知

一、安装 SVN 服务端

安装 Subversion

Subversion 是一个版本控制系统,相对于的 RCS 、 CVS ,采用了分支管理系统,它的设计目标就是取代 CVS 。

# yum install -y subversion

二、创建 SVN 版本库

创建项目版本库

# mkdir -p /data/svn/myproject
# svnadmin create /data/svn/myproject

屏幕快照 2017-11-06 17.01.46.png

三、配置 SVN 信息

1、配置文件简介

版本库中的配置目录 conf 有三个文件:

  • authz 是权限控制文件

  • passwd 是帐号密码文件

  • svnserve.conf 是SVN服务综合配置文件

2、配置权限配置文件 authz

现在请编辑 authz ,内容参考如下:

[groups]            
#用户组
admin = admin,root,test  
#用户组所对应的用户
[/]                 
#库目录权限
@admin = rw         
#用户组权限
*=r               
#非用户组权限

3、配置账号密码文件 passwd

现在请编辑 passwd ,内容参考如下:

[users]
# harry = harryssecret
# sally = sallyssecret
admin = 123456
root = 123456
test = 123456

4、配置 SVN 服务综合配置文件 svnserve.conf

现在请编辑 svnserve.conf ,内容参考如下:

[general]
# force-username-case = none
# 匿名访问的权限 可以是read、write,none,默认为read
anon-access = none
#使授权用户有写权限
auth-access = write
#密码数据库的路径
password-db = passwd
#访问控制文件
authz-db = authz
#认证命名空间,SVN会在认证提示里显示,并且作为凭证缓存的关键字
realm = /data/svn/myproject
[sasl]

四、启动 SVN 服务

1、启动 SVN

svnserve -d -r /data/svn

2、checkout SVN项目

# mkdir -p /data/workspace/myproject
# svn co svn://127.0.0.1/myproject /data/workspace/myproject --username root --password 123456 --force --no-auth-cache

3、提交文件到 SVN 服务器

从本地提交文件到 SVN 服务器,其中 root 密码为 /data/svn/myproject/conf/passwd 文件存储的密码

cd /data/workspace/myproject
echo test >> test.txt
svn add test.txt
svn commit test.txt -m 'test'

提交成功后可以通过如下命令从本地项目删除文件

cd /data/workspace/myproject
rm -rf test.txt

删除后可以通过 SVN 服务器恢复

cd /data/workspace/myproject
svn update

屏幕快照 2017-11-06 17.42.54.png

五、部署完成

大功告成

恭喜您已经完成了搭建 SVN 服务器

操作日志

[root@VM_42_111_centos ~]#  mkdir -p /data/svn/myproject
[root@VM_42_111_centos ~]#  svnadmin create /data/svn/myproject
[root@VM_42_111_centos ~]#
[root@VM_42_111_centos ~]# svnserve -d -r /data/svn
[root@VM_42_111_centos ~]#
[root@VM_42_111_centos ~]# mkdir -p /data/workspace/myproject
[root@VM_42_111_centos ~]# svn co svn://127.0.0.1/myproject /data/workspace/myproject --usernameroot --password 123456 --force --no-auth-cache
Checked out revision 0.
[root@VM_42_111_centos ~]# cd /data/workspace/myproject
[root@VM_42_111_centos myproject]# echo test >> test.txt
[root@VM_42_111_centos myproject]# svn add test.txt
A         test.txt
[root@VM_42_111_centos myproject]# svn commit test.txt -m 'test'
Authentication realm: <svn://127.0.0.1:3690> /data/svn/myproject
Password for 'root':
Authentication realm: <svn://127.0.0.1:3690> /data/svn/myproject
Username: root
Password for 'root':
-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:
   <svn://127.0.0.1:3690> /data/svn/myproject
can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.
You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? yes
Adding         test.txt
Transmitting file data .
Committed revision 1.
[root@VM_42_111_centos myproject]#
[root@VM_42_111_centos myproject]# cd /data/workspace/myproject
[root@VM_42_111_centos myproject]# rm -rf test.txt
[root@VM_42_111_centos myproject]#
[root@VM_42_111_centos myproject]# cd /data/workspace/myproject
[root@VM_42_111_centos myproject]# svn update
Updating '.':
Restored 'test.txt'
At revision 1.
[root@VM_42_111_centos myproject]#


根据腾讯实验室操作总结:https://cloud.tencent.com/developer/labs/lab/10068

未经允许请勿转载:程序喵 » 基于 CentOS 7.2 搭建 SVN 服务器

点  赞 (1) 打  赏
分享到: