svn&git hook对工作流的提升
什么是hook机制,以svn为例
svn的hook机制,就是用户在对仓库进行操作的时候,当特定的事件发生时,相应的hook会被调用,hook 其实就相当于特定事件的处理函数。
更加详细的不赘述,大家去百度谷歌必应即可
最最最常用的hook
- pre-commit 提交前校验是否允许提交
- post-commit 提交后 要做的事
可以想象到用处吗
项目健壮性提升,使用 pre-commit
- 新建unity Assets 必须带.meta才允许提交
- 每次提交必须是有意义的提交,与Jira进行强关联
- 分支锁,当前分支有锁则不许提交,对QA很有用,出版本必备
便利性提升 使用 post-commit
- 使用REST API ,集成CI工具。例如配置文件(json)提交,触发Jenkins进行生成sqlite
- C#或lua脚本提交,触发编译,可以尽早发现白痴提交
- 集成钉钉机器人,提交日志监控,看看团队中有没有划水的提交文本
- 某些目录提交,通知某些人。例如角色配置提交,通知音频设计师配音效等
可以想象的空间真的很多,那怎么写
以检查jira号为例子,写的是shell,当然也可以写py
function checkJIRA {
JIRA_CODE=$1
AUTHOR=$2
NAME=$(echo ${JIRA_CODE} | tr 'a-z' 'A-Z')
result=$(curl -u username:passward -s https://jira.babeltime.com/rest/api/2/issue/${NAME}\?fields\=summary)
result1=${result##*summary\":\"}
if [ ${#result} == ${#result1} ];then
echo "输入的jira号不存在 [${NAME}]" 1>&2
exit 1
fi
exit 0
}
test -z "$(grep -i 'WEST-[[:digit:]]' $LOGFILE)" || {
num=$(grep -oE -i 'WEST-[0-9]*' $LOGFILE)
checkJIRA $num $AUTHOR
}
echo "请按照如下格式提交 [JIRA号 备注内容] " 1>&2
echo "例: WEST-89757 大吉大利,今晚吃鸡" 1>&2
exit 1
乏善可陈,其中1>&2 是输出到控制台,当exit 1的时候,可以再svn提交人直接看到报错信息
标题:svn&git hook对工作流的提升
作者:kyochow
地址:https://kyochow.github.io/articles/2020/11/05/1604575596482.html