安装包获取

wget http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz

wget http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz

 

解压文件(务必将两个文件解压到相同的目录下,并且版本要一致)

tar zxf subversion-1.6.6.tar.gz

tar zxf subversion-deps-1.6.6.tar.gz

 

进入解压后的subversion目录

cd /xxxxxx/subversion-1.6.6/

 

创建安装目录

mkdir /usr/local/svn

 

编译安装

./configure –prefix=/usr/local/svn

make

make install

【如果出现错误:configure: error: no suitable apr found 则是因为上面的依赖文件没有减压到相同目录下导致。。。】

 

查看版本

/usr/local/svn/bin/svnserve –version

 

建立测试仓库

1.建立SVN的根目录,因为通常都有多个项目

mkdir -p /data0/svn/

2.建立一个测试仓库

mkdir -p /data0/svn/svntest/

svnadmin create /data0/svn/svntest/ 3.配置

 

cd /data0/svn/svntest/conf/

vi svnserve.conf

[general]

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

 

vi authz

[svntest:/]

xiaocai = rw

#给svntest仓库添加一个xiaocai用户,权限为可写

 

vi passwd

xiaocai = 123456

 

#设置用户密码

启动svn服务,指定SVN的根目录:

svnserve -d -r /data0/svn/

安装时遇到的问题:

启动svnserve时出现cannot bind server socket:address already in use

解决方法:

方法一:找出svnserve id 杀死掉进程

netstat -ntlp

kill -9 {PID号}

方法二:重新指定一个端口号(默认端口3690)

svnserve -d –listen-port 3691 -r /opt/svndata/svnrepo

 

查看是否启用

netstat -tunlp | grep svn

tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN      8646/svnserve

 

提交后更新到web目录下

cd /var/www/

svn checkout svn://42.121.4.220/www.icosplay.cc/

 

钩子

vi /data0/svn/hooks/post-commit

 

#!/bin/sh

REPOS=”$1″

REV=”$2″

svn update /mnt/www/www.icosplay.cc –username xiaocai –password 123123

 

Warning: post-commit hook failed (exit code 255) with no output.

如果执行提交时SVN提示255错误,则是 post-commit 脚本文件的权限不对,post-commit 脚本必须有 +x 权限。

groupadd svn

useradd -M -s /bin/false -g svn svn

 

chown svn:svn post-commit

chmod +x post-commit

 

文件头部如果没有:#!/bin/sh 也会出现同样的错误

 

自由转载,转载请注明: 转载自WEB开发笔记 www.chhua.com

本文链接地址: SVN自动更新 http://www.chhua.com/web-note4913

相关笔记

更多