|
|
1
10
我自己花了一些时间研究这个问题。我认为问题的答案描述得很简洁 here :
基本上,您不会重定向到stderr,因此会污染stdout。 |
|
|
2
10
好吧,在经历了和Marc W前一段时间同样的挫折之后,我终于找到了解决问题的方法,至少当远程服务用hgwebdir wsgi脚本完成时。 我发现,当通过HTTP或HTTPS使用这种远程推送时,Mercurial只会忽略您写入.hg/hgrc文件或存储库中的所有内容。但是,进入钩子 在hgwebdir配置中 做这个把戏。 所以如果你的底线 HGWebDR.WSGI 脚本类似于
[hooks]配置部分需要进入上述 HgWeb.CONFIG . 一个缺点是这些钩子是为 每个存储库 列在该配置的[路径]部分。尽管hg提供了另一个支持wsgi的函数(hgweb而不是hgwebdir),只为一个存储库服务,但它似乎不支持任何挂钩(它也没有任何配置)。 但是,可以通过使用上面描述的hgwebdir并让一些apache rewriterule将所有内容映射到所需的子目录中来规避这一点。这个适合我:
在http:d上使用远程钩子玩得开心 |
|
|
3
3
首先,我想更正上面的一些评论。
Hg/HGRC
现在向你的问题……我建议创建prechangegroup和changegroup挂钩,并打印一些调试输出。 Hg/HGRC
同时按下-v开关,这样你就可以知道哪个钩子在运行。如果您仍然无法确定,请发布输出。我也许能帮上忙。 |
|
|
4
3
我的问题是,我的hgwebdir应用程序以“hg”用户的身份运行,但存储库归我所有,所以我必须将这个配置添加到hgweb.config中,才能让它运行钩子:
|
|
|
5
2
你需要把它放在 遥远的 休息区的HGRC。听起来好像是在你的本地回购中。 编辑:这也取决于你是如何推动的。有些方法不调用右侧的挂钩。(ssh可以,我认为http可以,文件系统可以 不 ) 如果你在远程回购的电脑上按“本地”怎么办?在webserver和hgrc文件之间,您可能拥有不同的用户/权限。(请参阅[Server]和HGRC的可信指令。) |
|
|
6
2
我在通过HTTP从WindowsEclipse推送时遇到了同样的问题,但是在捕获了stderr之后,我发现hg.bat文件需要完整的路径。我的钩部分现在看起来像:
希望这能帮助别人。 斯蒂威 |
|
|
7
1
尝试 turning on hook debugging 看看它为什么不跑。 可能是权限问题或类似的问题。 |
|
|
8
1
花了一段时间,但我成功了。 我从开始
>&2将其传输到标准错误,以便远程控制台显示它。 远程时,如果控制台正在运行,则应在控制台中输出
事实并非如此。 我使用的是hgweb.cgi,所以我切换到了hgweb.wsgi,没有区别。 我发现有些钩子在遥控器上不会被呼叫。 当我切换到
hooks标记和commit似乎没有被调用,但是incoming和changeset确实被调用。我还没有确认其他人。 现在我开始工作了,我切换回hgweb.cgi,所有的工作都是一样的。 |
|
|
9
1
我发现这与重定向无关。
我发现的问题就在附近 权限 .
在我最初的设置中,我有一个用户,比如说
解决方案:
现在应该开始工作了
PS:在我的例子中,我宁愿更新到特定分支的头,所以我使用
顺便说一句
PS:应付账款 http://jf.blogs.teximus.com/2011/01/running-mercurial-hg-serve-on-linux.html |