我的设置是一个Windows XAMPP服务器,启用了cURL,并安装了Git和Hudson。 Hudson每分钟轮询Git以寻找变化,如果发现它们,它会创建一个构建。我使用这个版本作为我的测试服务器。这工作正常。Git后接收钩不工作
我想设置一台运行哈德森的力构建功能在我中心远程仓库后收到钩。
我已经创建了一个叫做在钩子目录在我中心Git仓库“后收到”后,收到文件,也就是从开发者的本地分支推到了一个。他们每个人都推送到中央存储库上的自己的分支。我希望在每次推送后立即运行post-receive构建,而不是让Hudson每分钟轮询一次Git。
当我打开一个shell到远程服务器,并运行在钩子文件夹“后接受”,它运行。当人们将其从本地存储库副本推送到中央存储库副本时,它不会被调用。
也许我没有解释这个权利,但这是我理解Git的方式。
的,收到后置代号为两行:
#!/bin/sh
curl http://myserver.com:8080/hudson/job/myjobname/build?token=mytoken
同样,当我打开一个外壳并运行此,它的工作原理,但是当有人推它,什么都不会发生,直到一分钟就少了哈德森意识到Git已经改变了,然后它就建立起来了。
我很高兴澄清是否需要。任何帮助是极大的赞赏。
编辑:玩弄之后,我觉得也许后收到没有执行,因为裁判没有被更新的东西吗? git文档说
它在所有ref已更新后在远程存储库上执行一次。
这是否意味着,如果没有更新,它不会执行?如果是这样,我很确定事情正在更新,所以它不应该适用。
这里是我的过程: 制作本地编辑。 提交修改。 从我的HEAD推送到名为'mybranch'的远程分支(不是主分支,这是检出) 这是我希望我的钩子执行的点。
Git进程正在运行时,用户有权执行该脚本? – jweyrich 2011-02-09 21:51:11
不确定。它在我通过Git Bash运行时执行它,但当我推送它时它不执行它。我将如何检查这些权限? – spanky 2011-02-09 21:52:55
正确的权限取决于您共享存储库的方式以及实际配置。但是,msquared的告诉你为所有用户/组提供可执行权限的方式,所以如果问题确实如此,它应该可以工作。 – jweyrich 2011-02-09 21:58:12