我有一个post-receive挂钩,需要一分钟才能执行。当执行这个钩子时,其他人不应该推动。如何防止git接收
有什么办法可以做到这一点?或者我如何配置git(在远程存储库中),以便它不允许从客户端推送?
我有一个post-receive挂钩,需要一分钟才能执行。当执行这个钩子时,其他人不应该推动。如何防止git接收
有什么办法可以做到这一点?或者我如何配置git(在远程存储库中),以便它不允许从客户端推送?
只需自己动手:在接收到的挂钩中创建一个锁定文件,并在完成后删除它。如果该文件存在,则添加一个pre-receive hook。
虽然这将允许竞争条件。如果两个客户端同时开始推送,他们都会到达后接收挂钩。为什么你需要这种独家访问?
似乎没有git config
否认全部推。
这使得你与技巧,以“破”的访问机制:
<git>/libexec/git-core/git-http-backend
。这不是一个漂亮的解决方案,因为在这两种情况下,它都会导致客户端出现错误消息,但在移动这些文件时您不会得到任何推送。
我更喜欢这个解决方案:您可以在预接收钩子中设置一个明确的错误消息。 +1 – VonC