Apache Subversion(简称SVN,svn),一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS转移到Subversion。
下面讲解下如何在CentOS 7中安装Subversion的详细过程。
1、开始在CentOS 7中安装Subversion
yum install mod_dav_svn subversion
示例输出:
=====================================================
Package Arch Version Repository Size
=====================================================
Installing:
mod_dav_svn x86_64 1.7.14-6.el7 base 101 k
subversion x86_64 1.7.14-6.el7 base 1.0 M
Installing for dependencies:
apr x86_64 1.4.8-3.el7 base 103 k
apr-util x86_64 1.5.2-6.el7 base 92 k
httpd x86_64 2.4.6-18.el7.centos updates 2.7 M
httpd-tools x86_64 2.4.6-18.el7.centos updates 77 k
mailcap noarch 2.1.41-2.el7 base 31 k
neon x86_64 0.30.0-3.el7 base 165 k
pakchois x86_64 0.4-10.el7 base 14 k
subversion-libs x86_64 1.7.14-6.el7 base 921 k
Transaction Summary
=====================================================
2、加配置文件到Apache
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNParentPath /var/www/linuxidcsvn
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile /etc/svn-auth-users
Require valid-user
</Location>
3、创建SVN用户
[root@linuxidc-centos7 ~]# htpasswd -cm /etc/svn-auth-users testuser1
New password:
Re-type new password:
Adding password for user testuser1
[root@linuxidc-centos7 ~]#
4、创建和配置SVN仓库
mkdir /var/www/linuxidcsvn
cd /var/www/linuxidcsvn
svnadmin create repo
chown -R apache.apache repo
# If you still have issues with SELinux Security please apply this:
chcon -R -t httpd_sys_content_t /var/www/linuxidcsvn/repo
chcon -R -t httpd_sys_rw_content_t /var/www/linuxidcsvn/repo
5、你可以用这种方式–HTTP和HTTPS
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
6、启用并启动HTTP服务
systemctl enable httpd.service
systemctl restart httpd.service
7、加入下面这个到conf/svnserve.conf
anon-access = none
auth-access = authz
8、branches&tags&trunk模式下建svn库
mkdir -p /tmp/svn-structure-template/{trunk,branches,tags}
svn import -m "Initial repository" /tmp/svn-structure-template file:///var/www/linuxidcsvn/repo/
Adding /tmp/svn-structure-template/branches
Adding /tmp/svn-structure-template/tags
Adding /tmp/svn-structure-template/trunk
Committed revision 1.
OK。