我想添加一个提交挂钩,当在gitolite / git服务器上收到针对给定分支和repo组合的推送时(在repo'dog'上的分支'cat'),该挂钩有效。
我的环境: git版本1.7.4.1,
到目前为止我做了什么:
在git / gitolite服务器上的/home/git/repositories/dog.git/hooks/post-receive.secondary
处触摸了一个文件。
使用以下内容编辑文件:
#!/bin/sh
#
refname="$1"
oldrev="$2"
newrev="$3"
if [ "$refname" == "refs/heads/cat" ]
then
touch /tmp/test
fi
将文件的所有者设置为“git”用户
将文件权限设置为700
完成对“dog”repo“cat”分支的提交
结果: 未创建测试文件
答案 0 :(得分:1)
如果我查看Gitolite v2 (g2) hook chaining section,只有两个挂钩与“.secondary
”扩展相关:
更新后挂钩,因为它仅在gitolite-admin
repo中使用,以“编译”配置等等。
(只有在激活镜像时才会涉及post-receive
,而在你的gitolite安装中不应该这样)
因此,您不需要在post-receive.secondary
中声明post-receive
,仅</path/to/gitolite>/hooks/common/
个问题,如“How to install hooks in gitolite”中所述。
OP specialsauce在评论中结束:
我需要在存储库文件夹中使用
post-receive
钩子(而不是辅助文件夹),我认为这是它不执行的主要原因。我最后改变的唯一另一件事就是将
700
(本来应该没问题?)的烫发设置为755
。
钩子现在可靠地执行。我不需要运行
gl-setup
脚本。另外,我将上面概述的var赋值代码更改为STDIN
上的“while”。