4

当我在 OpenShift 中创建一个测试 DIY 应用程序时,action_hooks工作正常,但现在我创建了一个实际应用程序,当我推送更改时它们不会触发。

我做了一些调查,发现了问题——由于某种原因,动作挂钩是不可执行的。我检查了一下,它们在测试应用程序(它们工作的地方)中是可执行的——但现在它们不是。

chmod设置它们并没有帮助,因为每次我推送一些更改时,OpenShift 都会将新的 repo 文件夹复制到旧的文件夹上(而不是使用 git 来更新它),所以权限被重置。我研究了使用 git 的post-receive钩子使它们可执行,但是 OpenShift 上的 git 钩子受到保护,我无法编辑它们。

有没有办法解决这个问题?

PS。我不知道它是否有任何影响,但我的实际开发存储库是在 Google Code 上的,我使用本教程将 OpenShift 存储库设置为我本地存储库的上游。

4

2 回答 2

4

在 JBoss Tools 的 OpenShift 工具中,我们遇到了同样的问题。我们的实现是重置钩子文件的执行权限,导致钩子被忽略:https ://issues.jboss.org/browse/JBIDE-13217 在我们的例子中,在这些文件上加上 +x 再次解决了这个问题。你似乎报告了一些回购被复制到你的,我真的不明白。这在你身上是怎么发生的?如果你能展示你的一些设置会有所帮助吗?

于 2013-02-06T11:52:29.120 回答
1

好的,我想通了。

当我创建应用程序时,我没有编辑动作挂钩,而是从第一个应用程序的存储库中复制了动作挂钩(我创建的应用程序是为了尝试 OpenShift DIY)。我认为发生的事情是 Git 检测到文件被替换而不是编辑并将它们视为新文件。OpenShift 以某种方式读取了这个,并没有给他们原始文件的执行权限。

为了解决这个问题,我按照这个答案从 OpenShift Template Builder 的提交中恢复了旧文件,现在它可以工作了!

于 2013-03-04T20:07:44.890 回答