SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的
实验环境
centos6.5_x64
软件安装
cp -pv /etc/sysconfig/selinux /etc/sysconfig/selinux.bak
echo > /etc/sysconfig/selinux
echo SELINUX=disabled > /etc/sysconfig/selinux
yum install -y subversion httpd httpd-devel mod_dav_svn linux服务端安装
TortoiseSVN-1.10.0.28176-x64-svn-1.10.0 windows客户端安装
svn --version
svn, version 1.6.11 (r934486) compiled Aug 17 2015, 08:37:43
httpd -v
Server version: Apache/2.2.15 (Unix)
find /usr/lib64/httpd/ -name "mod_dav_svn.so" -o -name "mod_authz_svn.so" 查看svn模块安装
/usr/lib64/httpd/modules/mod_authz_svn.so
/usr/lib64/httpd/modules/mod_dav_svn.so
mkdir -pv /usr/local/svn/test 创建项目目录
svnadmin create /usr/local/svn/test 生成项目目录配置
ls /usr/local/svn/test
conf db format hooks locks README.txt
cp -pv /usr/local/svn/test/conf/authz /usr/local/svn/test/conf/authz.bak
echo > /usr/local/svn/test/conf/authz
cat > /usr/local/svn/test/conf/authz << EOF
> [groups]
> admin = admin,test1 admin组名 admin test1为组用户
> [/]
> admin = rw
> * =
> EOF
cp -pv /usr/local/svn/test/conf/passwd /usr/local/svn/test/conf/passwd.bak
echo > /usr/local/svn/test/conf/passwd
cat > /usr/local/svn/test/conf/passwd << EOF
> [users]
> admin = admin
> test1 = test1 admin为用户名 admin为密码
> EOF
cp -pv /usr/local/svn/test/conf/svnserve.conf /usr/local/svn/test/conf/svnserve.conf.bak
echo > /usr/local/svn/test/conf/svnserve.conf
cat > /usr/local/svn/test/conf/svnserve.conf << EOF
> [general]
> anon-access = none
> auth-access = write
> password-db = passwd
> authz-db = authz
> realm = demo's svndata
> [sasl]
> # use-sasl = true
> # min-encryption = 0
> # max-encryption = 256 复制配置到配置文件
> EOF
svnserve -d -r /usr/local/svn/ & 启动服务
killall svnserve 停止服务
cp -pv /etc/rc.d/rc.local /etc/rc.d/rc.local.bak
echo "svnserve -d -r /home/data/svn/ &" >> /etc/rc.d/rc.local 开机启动svn服务
ps -ef | grep svn | grep -v grep
root 24357 1 0 14:44 ? 00:00:00 svnserve -d -r /usr/local/svn/
用户名为 /usr/local/svn/conf/passwd下文件用户名 密码
cp -pv /etc/httpd/conf.d/subversion.conf /etc/httpd/conf.d/subversion.conf.bak apache_svn结合
cp -pv /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
touch /usr/local/svn/passwd
cp -pv /usr/local/svn/test/conf/authz /usr/local/svn/authz
sed -i 's/AllowOverride None/AllowOverride All/g' /etc/httpd/conf/httpd.conf
sed -i 's/#ServerName www.example.com:80/ServerName *:80/g' /etc/httpd/conf/httpd.conf
cat > /etc/httpd/conf.d/subversion.conf << EOF
> LoadModule dav_svn_module modules/mod_dav_svn.so
> LoadModule authz_svn_module modules/mod_authz_svn.so
> <Location /svn>
> DAV svn
> SVNParentPath /usr/local/svn/test
> AuthType Basic
> AuthName "Authorization Realm"
> AuthzSVNAccessFile /usr/local/svn/authz
> AuthUserFile /usr/local/svn/passwd
> Require valid-user
> </Location> 写入配置到配置文件
> EOF
chkconfig --level 35 httpd on
htpasswd -cb /usr/local/svn/passwd admin 123456 admin为用户名 123456为密码
htpasswd -b /usr/local/svn/passwd test1 123456 >> /usr/local/svn/passwd -b用于第二个用户
cat /usr/local/svn/passwd/
admin:kvxK/.pJlKy82
test1:GybylD9bmDi1s
chown -R apache:apache /usr/local/svn/test
service httpd restart
用户名admin 密码123456