水星的信任问题

4
我正在尝试设置一个钩子,通过邮件通知我有新的提交。
由于Mercurial hook not executing properly中描述的问题,我似乎无法通过简单地将以下内容添加到我的.hg/hgrc来运行脚本:
[hooks]  
changegroup = /path/to/script

作为一种解决方法,我将钩子添加到了 hgweb.config 中,它可以正常运行。现在,由于我是通过 HTTP 推送的,实际运行脚本的用户是 apache(通过在钩子中运行 id 确定),这意味着我会遇到如下错误:

不信任来自未受信任用户 u、组 g 的文件 .hg/hgrc

我添加了

[trusted]  
users = u

但是相同的错误仍然存在。我做错了什么?我完全理解错了吗?感激任何帮助!
1个回答

2
你应该将钩子和信任块添加到 Apache 用户的主目录下的 .hgrc 文件中,而不是 hgweb.config 文件中。通常我们不会想到系统用户有主目录,但他们都有,并且你可以在 /etc/password 中找到它。它通常类似于 /var/www,因此如果你创建了一个 /var/www/.hgrc 文件,请确保它归 Apache 用户所有,并添加钩子和信任块,这样就可以使用了。

你说得完全正确,将它放在hgweb.config中是最丑陋的,但它仍比在/var/www/.hgrc中更本地化,这就是为什么我更喜欢它的原因。我们现在发现错误似乎是由服务器的错误配置导致的,错误地声明/root为Web服务器的主目录,导致它无法读取正确的配置文件。 因此,trusted配置完全被忽略了。 - jonny
Jonny,我经常看到这种情况。我总是在hgweb.cgi脚本中放置hgweb.config文件的绝对路径--依赖于Web服务器的当前工作目录会在CGI、FCGI和WSGI以及不同的服务器上出现问题。 - Ry4an Brase

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接