搭建svn版本管理器

软件版本
apr-1.4.6.tar.gz
apr-util-1.5.1.tar.gz
httpd-2.2.24.tar.bz
subversion-1.6.17.tar.bz2
neon-0.29.6.tar.gz

yum install openssl-devel expat-devel gcc gcc-c++

#tar -zxvf apr-1.4.6.tar.gz 
#cd apr-1.4.6
#./configure --prefix=/usr/local/apr
#make && make install




#tar -zxvf apr-util-1.5.1.tar.gz 
#cd apr-util-1.5.1
#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
#make && make install


#tar -zxf neon-0.29.6.tar.gz
#./configure --prefix=/usr/local/neon
#make && make install

#tar -zxvf sqlite-amalgamation-3.6.13.tar.gz
#./configure --prefix=/usr/local/sqlite
#make && make install



#tar -jxvf httpd-2.2.24.tar.bz2 
#cd httpd-2.2.24
#./configure --prefix=/usr/local/apache--with-apr=/usr/local/apr/bin/apr-1-config--with-apr-util=/usr/local/apr/bin/apu-1-config --enable-modules=so --enable-dav --enable-dav-fs --enable-ssl --enable-so
# make && make install
# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd


#tar -zxvf subversion-1.7.8.tar.gz
#./configure --prefix=/usr/local/svn--with-apxs=/usr/local/apache/bin/apxs--with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util --with-neon=/usr/local/neon --with-sqlite=/usr/local/sqlite --with-ssl --without-berkeley-db
#make && make install

# ls /usr/local/apache/modules/ |grep svn //查看svn模块是否添加
mod_authz_svn.so
mod_dav_svn.so
# svnadmin --version //查看svn版本



#vim /usr/local/apache/conf/httpd.conf



在末尾添加如下




DAV svn
SVNPath /data/svn/svnrepos1 //svn版本仓库路径
AuthType Basic
AuthName "Subversion repository" //欢迎预言
AuthzSVNAccessFile /data/svn/accessfile//里面设置访问版本库的用户和权限
AuthUserFile /data/svn/passwd.conf //密码文件位置
Require valid-user


DAV svn
SVNPath /data/svn/svnrepos2
AuthType Basic
AuthName "Subversion repository"
AuthzSVNAccessFile /data/svn/accessfile
AuthUserFile /data/svn/passwd.conf
Require valid-user
**该语句块的作用是将svn的服务器目录映射到访问Apache的虚拟路径svn


#mkdir /data/svn
#chmod -R o+rw /data/svn
# vim /data/svn/access.conf
[svnrepos:/]
ylw = rw //添加能访问的版本库的用户及权限
# /usr/local/apache/bin/htpasswd -bc /data/svn/passwd.conf ylw  123456 //第一次-bc,第二次直接-b即可
#svnadmin create /data/svn/svnrepos1 //创建svn仓库1
#svnadmin create /data/svn/svnrepos2 //创建svn仓库1
#chown apache:apache /data/svn/svnrepos*
#chmod o+w /data/svn/svnrepos* -R

#/etc/init.d/httpd start


http://ip/svnrepos1
http://ip/svnrepos2
使用:
#svn import /要导入的目录 file:///data/svn/svnrepos1 -m “说明文字”





备注:svnaccessfile权限控制文件说明:
[svn1:/]                                 #表示仓库svn1的根目录下的访问权限
test1 = rw                           #svn1仓库test1用户具有读和写的权限
test2 = r                                 #svn1仓库test2用户具有读的权限
[svn2:/]                                 #仓库svn2根目录下的访问权限
test1 = r                                  #test1用户在仓库svn2根目录只有读权限
test2 =                                  #test2用户在仓库svn2根目录没有任何权限
[/]                                        #表示所有仓库的根目录下的权限
* =                                         #表示所有用户都有读权限
[groups]                                 #表示群组设置
group1= test1, test2             #设置组名及成员
@group1 = rw                           设置组权限




钩子程序
在svn/svnroot/hooks里新建文件post-commit
#!/bin/sh
export LANG="zh_CN.UTF-8"
SVN=/usr/bin/svn
WEB=/home/11   #web要更新的目录
$SVN update $WEB --no-auth-cache --non-interactive --usernameuser --password 123456
posted @ 2013-10-29 14:03  消磨_时间  阅读(102)  评论(0)    收藏  举报