https://blog.csdn.net/y_server/article/details/56281409
利用SVN的钩子同步更新代码的方法详解
先普及一下小常识
SVN的钩子,即hook(在每个版本库下有hooks文件夹,里面有很多钩子程序,我的目录是/home/svn/fitness/hooks/)。在subversion执行一个操作时,就会相应的首先去调用相关的钩子程序。
我们在开发时都会建立测试环境,不需要每个人都Update到本地再测试。
基于SVN的这种特性,要想实现一个同步的测试服务器,我们只需要在用户执行完毕commit操作后,让钩子程序自动更新测试服务器的文件即可。
有了这样的思路,我们就开始建立post-commit的钩子吧
1、在网站的目录下,使用checkout命令建立一个副本
#svn co SVN_URL /var/www/mySite/
2、现在设置钩子,复制/home/svn/fitness/hooks/post-commit.temp文件为post-commit,并修改文件的权限#chmod
755 post-commit
3、编辑post-commit,把以下代码写入
#!/bin/sh
REPOS="$1"
REV="$2"
svn up /var/www/mySite/ --username=user1 --password=123456
大功告成,可以使用了
----------------------------
https://www.cnblogs.com/chenqionghe/p/4527763.html
实现SVN与WEB同步,可以CO一个出来,也可以直接用自动更新web目录的方法,我们要在svn版本库中配置钩子来实现,就是创建一个post-commit的配置文件,对其进行简单的配置,简简单单的四步就可以实现Linux下SVN自动更新web目录配置。
第一步:建立你的web程序目录
1
mkdir /var/www/html/test
进入你建立的web程序目录(svn
checkout可以简写为co)
1
2
svn checkout svn://localhost/svntest //不重命名文件夹,直接在当前目录下检出
svn checkout svn://localhost/svntest test //检出文件并且重命名文件夹
第二步:在项目库的 hooks/
目录下新建 post-commit 文件 【钩子脚本】
添加脚本内容如下
1
2
3
4
5
export LANG=en_US.UTF-8
SVN=/usr/bin/svn #这里配置的是svn安装bin目录下的svn文件
WEB=/var/www/html/test #要更新的目录
$SVN update$WEB --username cqh --password 123456
chown -R
www:www$WEB
其中SVN=右边改成 svn
命令位置
WEB=右边改成你实际的web目录
第三步:让post-commit有执行的权限
1
chmod a+x post-commit
第四步:这里就已经完成了,第四步就是测试了。
说明:
export
LANG=en_US.UTF-8是为了解决svn post commit
中文乱码,设置本地化编码,因为我的系统为UTF8编码,其实SVN默认就是UTF-8编码,如果编码是GBK的话不设置将会出现错误,而执行不成功,错误标识为
1
svn: Can't convert string from native encoding to
'GBK'
/usr/bin/svn update
--username cqh --password 123456 /var/www/html/test
执行更新操作
如果提示:
1
post-commit hook failed (exit code 255) with no output
赋予post-commit文件可执行权限
如果您的默认编码就是UTF-8的,要上传中文文件,先将文件另存为UTF-8格式在提交
--------------------------------
https://blog.csdn.net/arbben/article/details/79737503
----------------------
一,安装svn
安装很简单,采用的是yum安装。
yum install subversion // yum方式安装SVN
二,创建svn库和项目
mkdir -p /var/svn 创建svn库
svnadmin create /var/svn/project2 //传教project2项目 svn库文件有
conf,db,format,hookes,locks,README.txt
conf:配置文件 hooks:钩子文件夹
三,修改conf文件里的配置文件
1)修改authz文件
2.png
注意:admin = rw 待办 admin 拥有该项目下的所有权限 ,* = 代表除了admin 禁止其他账号访问
2)修改passwd文件
4.png
添加 admin 密码为123456
3)修改svnserve.conf
5.png
注意:realm = /var/svn/project2 项目路径
四,配置钩子文件,用于将上传的文件更新到网站目录
cd /test/svn/hooks
cp post-commit.tmpl post-commit
vi post-commit
输入
export LANG=en_US.UTF-8
SVN_PATH=/usr/bin
WEB_PATH=/usr/local/nginx/html
这里是设置的网站目录,我们以之前安装的nginx下的默认根目录
SVN_USER=user 设置的svn用户名
SVN_PASS=111111 密码
LOG_PATH=/tmp/svn.log
echo date "+%Y-%m-%d %H:%M:%S" >>
$LOG_PATH
echo whoami,$REPOS,$REV >> $LOG_PATH
$SVN_PATH/svn update $WEB_PATH --username $SVN_USER --password
$SVN_PASS --no-auth-cache >> $LOG_PATH
6.png
五,给post-commit 添加可执行权限
chmod a+x post-commit
六,如果有防火墙设置,则添加防火墙(默认3690端口)
firewall-cmd --zone=pulic --add-post=3690/tcp --permanent
七,开启svn
systemctl start svnserve
八,然后我们进入网站目录,先用账号检出下,按图示操作
cd /var/www/
svn checkout svn://ip地址/project2
先输入root密码, 在输入svn账户 , 在输入svn密码, yes 保存密码
7.png
作者:一梦三四年lyp
链接:https://www.jianshu.com/p/10325aaa9e6d
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。