一、SVN简介
Subversion是一个自由,开源的版本控制系统。Subversion将文件存放在中心版本库里。这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。这样就可以籍此将数据恢复到以前的版本,并可以查看数据的更改细节。Subversion是Apache基金会下的一个项目,官网 https://subversion.apache.org/ 。
二、安装SVN
# 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版本库
# 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
②配置版本库
# 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
# cat /etc/svn/repos/conf/passwd |grep -v "#" [users] zhi = 12345 ##前面用户名,后面密码
④配置authz权限
# 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
# 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配置文件没有顶格写。)
=====>点击“确定”,输入用户名和密码=====>
=====>