gpt4 book ai didi

SVN 提交后脚本未被执行

转载 作者:行者123 更新时间:2023-12-04 21:23:00 25 4
gpt4 key购买 nike

我已经花了几个星期试图解决这个问题(没有任何进展)。

我遵循了 svn 红皮书“实现存储库 Hook ”部分:

  • 将 $REPOSITORY_HOME/hooks/post-commit.tmpl 文件复制到 $REPOSITORY_HOME/hooks/post-commit

  • 让运行 httpd 或 svnserve 的帐户可执行 $REPOSITORY_HOME/hooks/post-commit 脚本(事实上,我让每个人都可执行)

  • 验证我的提交后脚本是否可以由同一用户在命令行上手动运行

但是,每当任何用户向存储库提交任何工件时,提交后脚本仍然无法执行。

我在 svn 红皮书和 post-commit.tmpl 中发现的一件事让我有点困惑它到底在推断什么:“请注意,'post-commit' 必须可由将调用它的用户执行(通常是用户 httpd 运行),并且该用户必须具有文件系统级权限才能访问存储库。”

这是否意味着执行提交后脚本的用户也必须是可以访问 SVN 存储库的用户(通过 SVN 客户端,例如 tortoiseSVN 或者更确切地说是可以通过诸如此类的东西访问 SVN 存储库文件的本地用户帐户作为腻子)。我相信这可能是我的问题所在,但我并不完全相信,因为运行 httpd 的用户是提交后脚本和存储库所在的文件系统的所有者。因此,他拥有文件系统所需的所有权限。但是,我无法使用该用户帐户在我的工作站上使用 tortoiseSVN 远程 check out 存储库中的目录/文件。

非常感谢任何见解!

已审阅的引用资料:

最佳答案

我看到你有一个错误。我假设 Post commit 失败并显示警告消息

post-commit hook failed (exit code 1) with output: 
You need version 1.5.0 or better of the Subversion Python Bindings

如果是这样的话,我想你应该没有在钩子(Hook)脚本中设置环境变量。出于安全原因,Subversion 存储库在空环境下执行 Hook 程序——即,根本没有设置任何环境变量,甚至没有设置 $PATH(或 %PATH%,在 Windows 下)。正因为如此,当他们的 hook 程序手动运行良好,但在 Subversion 中运行时却不起作用时,许多管理员感到困惑。

注意:一定要在你的钩子(Hook)程序中明确设置任何必要的环境变量和/或使用程序的绝对路径。

关于SVN 提交后脚本未被执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19163556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com