什么是 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 提交人直接看到报错信息
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于