首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hgweb和changegroup钩子不起作用

Hgweb和changegroup钩子不起作用
EN

Stack Overflow用户
提问于 2011-11-26 16:22:50
回答 2查看 1.1K关注 0票数 0

我正在使用hgweb发布本地存储库。

/project_path/project_name/.hg/..hgrc有:

代码语言:javascript
复制
[hooks]
changegroup.bitbucket  =  hg push ssh://hg@bitbucket.org/user/repo

当我使用hgweb时,所有changegroup都可以正常工作,但是当我通过nginx与fcgi一起使用hgweb时,它根本不起作用。我需要这些功能来进行某种备份。

EN

回答 2

Stack Overflow用户

发布于 2011-11-26 20:14:40

它主要是像信任

Mercurial需要在hgrc文件解析/运行之前信任它。如果您的/project_path/project_name/.hg/.hgrc文件是您拥有的,那么当您在解析/使用它时,在运行hg serve时使用Mercurial。但是,nginx作为自己的用户运行,可能是nginx,它不信任您拥有的文件,因此当它调用Mercurial时,这些文件将被忽略(请参阅注意事项)。

这个Mercurial信任链接给出了更好的解释,并讨论了如何说"nginx信任X",但是如果它是一个单用户系统,或者您希望每个人都信任您,您可以在系统中抛出一个信任块--全球/etc/mercurial/hgrc文件,说每个人都信任X。

注意:它并不只是忽略那些文件,它在STDERR上设置了一个警告,在apache土地上,您可以在error.log中找到这些警告,但是在nginx中,似乎没有人发现这些警告,所以我不知道nginx把它们放在哪里。

票数 2
EN

Stack Overflow用户

发布于 2011-11-26 19:26:55

我想您在这里可能有某种身份验证问题。当从命令行运行hg serve时,后台运行的ssh-agent提供了ssh凭据。

但是,当将hgweb作为服务运行时,这是行不通的,因为后台没有运行ssh代理。如果要启动ssh-agent,就不可能输入ssh密钥的密码。

Bitbucket使用ssh密钥对您进行身份验证,因此不能仅仅将密码添加到上面的hg push命令中。

一个可能的解决方案是不使用bitbucket作为备份,而是使用不同的mercurial服务器,让您在命令行上提供简单的密码。

恐怕我不能再帮你了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8279796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档