linux svn钩子同步,svn 钩子 问题 解决篇 linux 安装svn,并设置钩子来同步更新

svn 钩子 问题 解决篇 linux 安装svn,并设置钩子来同步更新

2019年12月07日

阅读数:19

这篇文章主要向大家介绍svn 钩子 问题 解决篇 linux 安装svn,并设置钩子来同步更新,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

http://lhkzyz.iteye.com/blog/1666180html

linux安装svn下载linux

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

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

1./configure --prefix=/opt/svn --without-berkeley-db --with-zlib=/usr/local/subversion-1.6(此处指明位置)

(--prefix是指的安装目录,--without是不用apche 最后是使用依赖包)

2.make &&make install

3,在etc/profile 里面加入环境变量

SVNPATH=$PATH:/opt/subversion/bin

4.source profile 使环境变量生效

5,检查版本 svn --version  svnserve --version(注意是两个横)

6.创建版本库目录  选择一个目录以后 创建   mkdir -p svn

cd svn 而后创建测试库 mkdir -p svntest

7.创建版本库

svnadmin create svntest

8.修改配置文件

cd svntest/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

vi svnserve.conf

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

vi authz

[svntest:/]

lipeng = rw

#给svntest仓库添加一个名称为lipeng 的用户,权限为可写。

vi passwd

lipeng = 123456

为这个设置密码

svnserve.conf

(注意:这只是在svntest下生效的用户名密码,也能够统一写到svn/conf/authz和password里面,就至关于全局的,只要在版本库中的

引入便可)

9.启SVN服务,并指定SVN的根目录:

[root@youxia201 test]# svnserve -d -r /usr/local/svn/

-r指定服务器的根目录

-d表示在后台运行

服务已经正常起来:

[root@youxia201 test]# netstat -tunlp | grep svn

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

十、开放服务器端口

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/.

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

svnserve -d -r /usr/local/svn/ --listen-port 843 用这个端口打开

而后从新启动就能够了

12.因为svn服务器和客户端是不同的,因此不能从服务器看到源文件,请注意

可是能够在linux下新建一个文件夹,而后执行命令 svn checkout svn://192.168.1.200:9999/ 会提示输入linux终端的密码,以及svn用户名以及密码

二,设置钩子

咱们知道要把svn的内容更新到web目录须要手动的svn up,可是今天笔者教你自动更新web目录的方法,咱们要在svn版本库中配置钩子来实现,就是建立一个post-commit的配置文件,对其进行简单的配置,简简单单的四步就能够实现Linux下SVN自动更新web目录配置。

第一步:创建你的web程序目录

mkdir /var/www/html/test

进入/var/www/html/test目录。

svn checkout svn://121.14.177.178:843/svntest 不重命名文件夹,直接在当前目录下检出

svn checkout svn://121.14.177.178:843/svntest test 检出文件而且重命名文件夹

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

添加脚本内容以下:

#!/bin/sh

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

WEB=/var/www/html/test     #要更新的目录

$SVN update $WEB --username xxx --password xxx (此版本是linux下,windows下是.bat,写法少有不一样)

其中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 from native encoding to 'UTF-8'

/usr/bin/svn update --username lxy --password 123456 /var/www/myproject 执行更新操做

若是提示:post-commit hook failed (exit code 255) with no output赋予post-commit文件可执行权限

若是您的默认编码就是UTF-8的,要上传中文文件,先将文件另存为UTF-8格式在提交

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值