一、SVN简介
Subversion是一个自由,开源的版本控制系统。Subversion将文件存放在中心版本库里。这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。这样就可以籍此将数据恢复到以前的版本,并可以查看数据的更改细节。Subversion是Apache基金会下的一个项目,官网https://subversion.apache.org/。
二、安装SVN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# yum -y install subversion
=============================================================================
Package 架构 版本 源 大小
=============================================================================
正在安装:
subversion x86_64 1.7.14-10.el7 base 1.0 M
为依赖而安装:
apr x86_64 1.4.8-3.el7 base 103 k
apr-util x86_64 1.5.2-6.el7 base 92 k
neon x86_64 0.30.0-3.el7 base 165 k
pakchois x86_64 0.4-10.el7 base 14 k
perl x86_64 4:5.16.3-286.el7 base 8.0 M
perl-Carp noarch 1.26-244.el7 base 19 k
perl-Encode x86_64 2.51-7.el7 base 1.5 M
perl-Exporter noarch 5.68-3.el7 base 28 k
perl-File-Path noarch 2.09-2.el7 base 26 k
perl-File-Temp noarch 0.23.01-3.el7 base 56 k
perl-Filter x86_64 1.49-3.el7 base 76 k
perl-Getopt-Long noarch 2.40-2.el7 base 56 k
perl-HTTP-Tiny noarch 0.033-3.el7 base 38 k
perl-PathTools x86_64 3.40-5.el7 base 82 k
perl-Pod-Escapes noarch 1:1.04-286.el7 base 50 k
perl-Pod-Perldoc noarch 3.20-4.el7 base 87 k
perl-Pod-Simple noarch 1:3.28-4.el7 base 216 k
perl-Pod-Usage noarch 1.63-3.el7 base 27 k
perl-Scalar-List-Utils x86_64 1.27-248.el7 base 36 k
perl-Socket x86_64 2.010-3.el7 base 49 k
perl-Storable x86_64 2.45-3.el7 base 77 k
perl-Text-ParseWords noarch 3.29-4.el7 base 14 k
perl-Time-HiRes x86_64 4:1.9725-3.el7 base 45 k
perl-Time-Local noarch 1.2300-2.el7 base 24 k
perl-constant noarch 1.27-2.el7 base 19 k
perl-libs x86_64 4:5.16.3-286.el7 base 687 k
perl-macros x86_64 4:5.16.3-286.el7 base 43 k
perl-parent noarch 1:0.225-244.el7 base 12 k
perl-podlators noarch 2.5.1-3.el7 base 112 k
perl-threads x86_64 1.87-4.el7 base 49 k
perl-threads-shared x86_64 1.43-6.el7 base 39 k
subversion-libs x86_64 1.7.14-10.el7 base 921 k
# svnversion --version ##查看SVN软件版本
svnversion,版本 1.7.14 (r1542130)
编译于 Nov 20 2015,19:25:09
版权所有 (C) 2013 Apache 软件基金会。
此软件包含了许多人的贡献,请查看文件 NOTICE 以获得更多信息。
Subversion 是开放源代码软件,请参阅 http:
//subversion
.apache.org/ 站点。
|
三、配置并启动SVN
①创建SVN版本库
1
2
3
4
5
6
7
8
9
10
11
12
|
# mkdir -p /etc/svn/repos ##创建版本库
# svnadmin create /etc/svn/repos/ ##创建SVN版本库
# ls -la /etc/svn/repos/
总用量 16
drwxr-xr-x. 6 root root 80 7月 4 15:53 .
drwxr-xr-x. 3 root root 18 7月 4 15:49 ..
drwxr-xr-x. 2 root root 51 7月 4 15:53 conf
##存储版本库配置文件的目录
drwxr-sr-x. 6 root root 4096 7月 4 15:53 db
##SVN所要管理的所有受版本控制的数据
-r--r--r--. 1 root root 2 7月 4 15:53
format
##用来表示版本库布局版本号的整数
drwxr-xr-x. 2 root root 4096 7月 4 15:53 hooks
##存储钩子脚本模版的目录
drwxr-xr-x. 2 root root 39 7月 4 15:53 locks
##存储SVN版本库锁定数据的目录
-rw-r--r--. 1 root root 229 7月 4 15:53 README.txt
|
②配置版本库
1
2
3
4
5
6
|
# cat /etc/svn/repos/conf/svnserve.conf |grep " "|grep -v "#"
anon-access = none
##使非授权用户无法访问
auth-access = write
##给予授权用户写权限
password-db =
passwd
##指向保存用户帐号密码的文件的位置,这里使用相对路径
authz-db = authz
##访问控制文件
realm = repos
##认证命名空间,SVN会在认证提示里显示,且作为凭证缓存的关键字
|
③配置passwd
1
2
3
|
# cat /etc/svn/repos/conf/passwd |grep -v "#"
[
users
]
zhi = 12345
##前面用户名,后面密码
|
④配置authz权限
1
2
3
4
5
|
# vi /etc/svn/repos/conf/authz
[
groups
]
admin = zhi
[/]
@admin = r
|
注释:
a.1个用户组可以包含1个或多个用户,用户间以逗号分隔。
b.版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
其中,方框号内部分可以有多种写法:
[/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/etc/svn/,[/]就是表示对全部版本库设置权限。
[repos:/] 表示对版本库repos设置权限;
[repos:/abc] 表示对版本库repos中的abc项目设置权限;
[repos:/abc/aaa] 表示对版本库repos中的abc项目的aaa目录设置权限;
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。
c.权限可以是w、r、wr和空,空表示没有任何权限。
⑤启动SVN
1
2
3
4
|
# systemctl stop firewalld
# svnserve -d --listen-port 8888 -r /etc/svn
# ss -tlnp |grep svn
LISTEN 0 7 *:8888 *:*
users
:((
"svnserve"
,pid=1803,fd=3))
|
注释:
-d :表示以daemon方式(后台运行)运行;
--listen-port 8888:表示使用8888端口,可以换成你需要的端口;
-r /etc/svn:指定根目录是/etc/svn
四、连接SVN
Windows下载TortoiseSVN,官网https://tortoisesvn.net/,还可以下载对应版本的中文包进行汉化。(注:版本必须对应,不然无法汉化。)安装下载的中文语言包安装程序完成后,在TortoiseSVN右键菜单的Settings选项中,选择简体中文即可。
安装后,右键=====>TortoiseSVN=====>版本库浏览器=====>
(注:如点击"确定"出现option expected是由于svnserve.conf配置文件没有顶格写。)
=====>点击“确定”,输入用户名和密码=====>
=====>