【问题标题】:Gitolite post-receive hook not executable anymore after each gitolite-admin push每次 gitolite-admin 推送后 Gitolite 接收后挂钩不再可执行
【发布时间】:2012-07-03 20:27:03
【问题描述】:

我找不到任何关于如何正确执行此操作的帖子/文章 - 通常这意味着您使用错误,所以我想我会在这里要求检查 :)

我正在使用 Gitolite,它运行良好。我已经实现了一个常见的接收后挂钩,以便在我的团队成员推送新提交时收到通知,我为他们的存储库激活了该提交。我遇到的问题是,每次推送后(无论钩子是否已更改),文件都会被覆盖并获得以下权限:

rwel@ve-git:~$ ls -la /home/git/.gitolite/hooks/common/
total 36
drwxr-xr-x 2 git git  4096 Jul  3 13:23 .
drwxr-xr-x 4 git git  4096 May  1 15:41 ..
-rw------- 1 git git 21002 Jul  3 13:23 post-receive
-rwxr-xr-x 1 git git   308 May 15 16:24 update

所以,每次我执行gitolite-admin rwel$ git push origin,我都必须登录到 git 服务器并手动执行sudo chmod a+x /home/git/.gitolite/hooks/common/post-receive

有没有更好的方法来做到这一点?

【问题讨论】:

  • 您是在使用 gitolite V2(或 g2,带有 gl-xxx 命令)还是带有 bin/gitolite 脚​​本的 Gitolite V3(或 g3)?
  • 看看 serverfault:serverfault.com/q/221978serverfault.com/q/26954 --- 不知道我是否应该将其作为答案发布
  • @VonC:抱歉,忘了说。 V3.
  • @helt:这两个都不是我的答案。 UMASK 不好,因为所有者甚至没有获得 x 权限(umask 为 0)。另一篇文章(我认为)解释了如何设置权限,但没有解释如何正确设置权限,对吧?
  • 您的 Linux 系统“umask”返回什么? (我看了stackoverflow.com/a/8598684/6309后问)

标签: git permissions hook gitolite


【解决方案1】:

had the same Problem。简短的回答是:

在 unix 机器上查看 gitolite-admin 存储库,chmod +x 你的文件并推送它。

从现在开始,该文件是可执行的,即使在 Windows 上克隆了 repo(因为cloning on windows sets core.fileMode=false

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 2011-12-24
    相关资源
    最近更新 更多