一,介绍
subversion(简称svn)是近年来崛起的版本管理软件,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。 Subversion是一个版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上免费的版本控制服务多基于Subversion。[1] Subversion的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。从某种程度上来说,允许用户在各自的空间里修改和管理同一组数据可以促进团队协作。因为修改不再是单线进行(单线进行也就是必须一个一个进行),开发进度会进展迅速。此外,由于所有的工作都已版本化,也就不必担心由于错误的更改而影响软件质量—如果出现不正确的更改,只要撤销那一次更改操作即可。某些版本控制系统本身也是软件配置管理系统(SCM),这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性—比如,对编程语言的支持,或者提供程序构建工具。不过Subversion并不是这样的系统。它是一个通用系统,可以管理任何类型的文件集。
二 , 安装
[root@cn-dns-test03 /]# yum install mod_dav_svn subversion
[root@cn-dns-test03 /]# svn --version
svn, version 1.6.11 (r934486)
compiled Jun 23 2012, 00:44:03
Copyright (C) 2000-2009 CollabNet.
The following repository access (RA) modules are available:
* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
- handles 'http' scheme
- handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
- with Cyrus SASL authentication
- handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
- handles 'file' scheme
[root@cn-dns-test03 /]#
三, 配置
[root@cn-dns-test03 /]# vi /etc/httpd/conf/httpd.conf
ServerName 127.0.0.1:80
[root@cn-dns-test03 var]# cd /
[root@cn-dns-test03 /]# mkdir svn
[root@cn-dns-test03 /]# cd svn/
[root@cn-dns-test03 svn]# ls
[root@cn-dns-test03 svn]# mkdir data conf
[root@cn-dns-test03 svn]# ls
conf data
[root@cn-dns-test03 svn]# cd data/
[root@cn-dns-test03 conf]# ls
[root@cn-dns-test03 conf]# svnadmin create newrepos
[root@cn-dns-test03 conf]# cd /
[root@cn-dns-test03 /]# chown -R apache.apache svn
[root@cn-dns-test03 /]#
[root@cn-dns-test03 newrepos]# vim /etc/httpd/conf.d/subversion.conf
[root@cn-dns-test03 newrepos]# cat /etc/httpd/conf.d/subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
#
# Example configuration to enable HTTP access for a directory
# containing Subversion repositories, "/var/www/svn". Each repository
# must be both:
#
# a) readable and writable by the 'apache' user, and
#
# b) labelled with the 'httpd_sys_content_t' context if using
# SELinux
#
#
# this configuration, run as root:
#
# # cd /var/www/svn
# # svnadmin create stuff
# # chown -R apache.apache stuff
# # chcon -R -t httpd_sys_content_t stuff
#
<Location /svn>
DAV svn
SVNParentPath /svn/data
#
# # Limit write permission to list of valid users.
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# # Require SSL connection for password protection.
# # SSLRequireSSL
#
AuthType Basic
AuthName "subversion repos"
AuthUserFile /svn/conf/svn-auth-conf
Require valid-user
# </LimitExcept>
</Location>
[root@cn-dns-test03 newrepos]#
[root@cn-dns-test03 newrepos]# htpasswd -cm /svn/conf/svn-auth-conf user
New password:
Re-type new password:
Adding password for user user
[root@cn-dns-test03 newrepos]#