Rootop 服务器运维与web架构

subversion通过关键词触发同步更新至web目录

| 暂无评论

需求:
开发要求在备注中指定某个关键词时同步代码至web目录。也就是手动同步。

在subversion库中有个hooks文件夹,称之为钩子,用来触发特定条件时的动作。
其中pre-commit用来提交前的动作,post-commit提交后的动作。

在TortoiseSVN客户端,提交代码的时候,有个recent message ,可以填写附加信息。
通过svn服务端的svnlook检测附加信息来判定是否同步至web目录。

首先配置pre-commit
[root@localhost hooks]# vi pre-commit

#!/bin/sh
REPOS="$1"
TXN="$2"
SVNLOOK=/usr/bin/svnlook

$SVNLOOK log -t "$TXN" "$REPOS" | grep "toweb" > /tmp/ifsubmit
if [ -z /tmp/ifsubmit ]; then
 echo "If u wanna to submit to web directory, use toweb"
else
 echo "sync to web directory"
fi
exit

这里设置的单词为toweb
[root@localhost hooks]# chmod 777 pre-commit

配置post-commit
[root@localhost hooks]# vi post-commit

#!/bin/sh
ifsub=$(cat /tmp/ifsubmit)
DEST_DIR=/var/www/html

if [ "$ifsub" == "toweb" ]; then
 svn update $DEST_DIR --username venus --password venus
else
 echo "no code to sync"
fi
exit

[root@localhost hooks]# chmod 777 post-commit

pre-commit用来做提交前过滤,如果附件信息中有toweb单词,写入到/tmp/ifsubmit中,然后post-commit开始提交后的动作,查看/tmp/ifsubmit文件
如果出现toweb执行同步操作。

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/2178.html

作者:Venus

服务器运维与性能优化

发表回复