linux安装svn+钩子

linux安装svn
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


#解压2个压缩包到同一级

tar zxvf subversion-deps-1.6.6.tar.gz

cd subversion-1.6.6

#编译 (--prefix是指的安装目次,--without是不消apche 最后是应用依附包)

./configure --prefix=/opt/svn --without-berkeley-db --with-zlib=/usr/local/subversion-1.6


#安装
make && make install


#在etc/profile 里面参加环境变量
export PATH=$PATH:/opt/svn/bin

#使景象变量生效

source /etc/profile


#搜检版本svn (是两个横)
svnserve --version


#建树版本库目录 选择一个 目录 之后 建树

mkdir -p /var/svnbox

cd /var/svnbox

#建立一个项目版本库

svnadmin create www.domain.com

#修改配置文件
cd www.domain.com/conf && ll
-rw-r--r-- 1 root root 710 08-25 09:40 authz
-rw-r--r-- 1 root root 325 08-25 09:38 passwd
-rw-r--r-- 1 root root 1449 08-25 09:36 svnserve.conf

#修改总配置文件
vim svnserve.conf
anon-access = none
auth-access = write
password-db = passwd #密码文件
authz-db = authz #账户

#给svntest仓库添加一个名称为 fly 的用户,权限为可写。
vi authz
[svntest:/]
fly = rw

#为账户设置密码
vim passwd
fly = xxxxxx

svnserve.conf
(重视:这只是在svntest下生效的用户名暗码,也可以同一写到svn/conf/authz和password里面,就相当于全局的,只要在版本库中的
引入即可)

#启动SVN,并指定SVN的根目录:

##这个目录是版本库目录
svnserve -d -r /data/svnbox
-r指定办事器的根目次
-d默示在后台运行

#查看启动状态:
netstat -tunlp | grep svn
tcp    0   0 0.0.0.0:3690        0.0.0.0:*          LISTEN   8646/svnserve

--------------------------如果开启了防火墙
#开放SVN端口
svn默认端口是3690,你须要在防火墙上开放这个端口。
  /sbin/iptables -A INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT
  /sbin/service iptables save
你也可以经由过程svnserve的--listen-port选项来指定一个已经开放的其他端口,不过如许的话客户端应用也必须家上端口,如svn://192.168.1.200:9999/.

#开放之后 重启

netstat -tunlp | grep svn 找到过程id ,kill -9 id掉

# 用这个端口打开

svnserve -d -r /usr/local/subversion-1.6  --listen-port 843

然后从头启动就可以了
------------------------------

配置钩子

进入主目录。

# /usr/bin/svn checkout svn://ip/www.domian.com ./    //检出一份版本库文件到当前目录

第二步:在项目库的 hooks/ 目录下新建 post-commit 并赋予777权限 文件 【钩子脚本】

添加脚本内容如下:

--------------------------------------------------------------------

#!/bin/sh

export LC_CTYPE=en_US.UTF-8//能添加中文字符

SVN=/usr/local/svn/bin/svn#这里配置的是svn安装bin目录下的svn文件

WEB=/usr/local/nginx/html #要更新的目录

$SVN update $WEB --username xxx --password xxx

其中SVN=右边改成 svn 命令位置

WEB=右边改成你实际的web目录


第三步:让post-commit有执行的权限 chmod 777 post-commit


--------------------------------------------------------------------

申明:
#!/bin/sh 申明是履行shell号令
export LANG=zh_CN.GBK 是为懂得决svn post commit 中文乱码,设置本地化编码,因为我的体系为GBK编码,SVN默认是UTF-8编码,若是不设置将会呈现错误,而履行不成功,错误标识为svn: Can""t convert string native encoding to ""UTF-8""
/usr/bin/svn --username lxy --password 123456 /var/www/myproject 履行更新操纵
若是提示:post-commit hook failed (exit code 255) with no output付与post-commit文件可履行权限
若是您的默认编码就是UTF-8的,要上传中文文件,先将文件另存为UTF-8格局在提交



你可能感兴趣的:(svn钩子,linux安装svn)