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。在hgweb.cgi脚本中设置config变量,如下所示:

config = "hgweb.config"

无论我在配置文件中使用什么路径,我都无法在web界面中看到我的存储库(空存储库索引)。以下是我尝试使用绝对路径和相对路径的几个例子

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

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

注意:hgweb的cgi和配置文件在/var/www/hgrepublic/文件夹以及fakecake repository文件夹

通过查看源代码,我找到了自己问题的解决方案。

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

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

它是这样工作的,所以我认为在hgweb中可能存在解析问题。[路径]部分的配置文件?

[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

最新更新