mercurial hgweb.config找不到存储库,路径问题

时间:2011-08-24 08:31:49

标签: mercurial hgweb

我在apache web服务器上使用我的apache2.conf文件中声明的hgweb.cgi脚本设置了一个存储库,如下所示:

ScriptAlias /hgp "/var/www/hgrepublic/hgweb.cgi"

在我的hgweb.cgi脚本中,如果我将config变量设置为我的存储库的路径:

config = "/var/www/hgrepublic/fakecake"

它有效,我在http://localhost/hgp

看到了我的存储库的历史记录

现在,如果我想使用hgweb.config文件,我在hgweb.cgi脚本中设置配置变量,如:

config = "hgweb.config"

无论我尝试在配置文件中使用哪条路径,我都无法在Web界面中看到我的存储库(空存储库索引)。以下是我尝试使用绝对路径和相对路径的一些示例

[paths]
/ = /var/www/hgrepublic/**
fakecake = /fakecake
fakecake = /var/www/hgrepublic/fakecake

有什么想法可以帮助我使用配置文件吗? (我想在配置文件中声明几个存储库)

注意:hgweb cgi和config文件位于/ var / www / hgrepublic /文件夹以及fakecake存储库文件夹中。

2 个答案:

答案 0 :(得分:1)

通过查看来源,我找到了解决自己问题的方法。

我在hgweb.cgi文件中使用了一个dict来传递我想要显示的不同存储库:

config = {'repo1' : '/path/to/repo1', 'repo2' : '/path/to/repo2'}

它是这样的,所以我认为[path]部分的hgweb.config文件中可能存在解析问题?

答案 1 :(得分:0)

[paths]部分将URL转换为存储库路径。尝试:

hgweb.config

[paths]
/hpg/fakecake = /var/www/hgrepublic/fakecake
/hpg/repo2 = /var/www/hgrepublic/repo2

hgweb.cgi

config = "hgweb.cgi"  # or /path/to/hgweb.cgi if not in cwd