需求:
开发要求在备注中指定某个关键词时同步代码至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