Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial 没有Web界面的hgweb_Mercurial_Hgweb - Fatal编程技术网

Mercurial 没有Web界面的hgweb

Mercurial 没有Web界面的hgweb,mercurial,hgweb,Mercurial,Hgweb,这似乎是一个愚蠢的想法,但无论如何,在没有任何捆绑在hgweb.cgi中的webinterface功能的情况下,通过http为mercurial存储库提供服务 我希望用户能够通过http://克隆/推送存储库,但我不希望他们能够通过web界面查看存储库或文件 静态HTTP是一种选择,但是官方的mercurial文档声称这非常缓慢 如果这不是小事,有没有人知道一个示例代码通过http为hg存储库提供服务,而不支持浏览器界面 提前感谢。我不知道您为什么要限制对UI部件的访问,因为这里提供的任何信息都

这似乎是一个愚蠢的想法,但无论如何,在没有任何捆绑在hgweb.cgi中的webinterface功能的情况下,通过http为mercurial存储库提供服务

我希望用户能够通过http://克隆/推送存储库,但我不希望他们能够通过web界面查看存储库或文件

静态HTTP是一种选择,但是官方的mercurial文档声称这非常缓慢

如果这不是小事,有没有人知道一个示例代码通过http为hg存储库提供服务,而不支持浏览器界面


提前感谢。

我不知道您为什么要限制对UI部件的访问,因为这里提供的任何信息都可以访问,如果他们可以访问这些文件,那就这样吧:p

如果您想要一些干净的解决方案,我认为使用hgweb.cgi的代码并重写它不会太困难,但我认为您也可以做得更快:
hg serve-t/dev/null

这将使用
/dev/null
作为UI部分的模板,因此用户在连接到服务器时将收到“内部服务器错误”页面,但可以通过
hg
访问存储库

唯一的缺点是,如果通过浏览器进行访问,日志字段将出现错误


PS:如果您不在Unix系统上,只需使用任何空目录作为模板的源。

我快速检查了hgweb文件,发现:

找到mercurial安装的
hgweb/webcommands.py
文件,并在编辑器中打开它。更改文件顶部的以下代码:

__all__ = [
   'log', 'rawfile', 'file', 'changelog', 'shortlog', 'changeset', 'rev',
   'manifest', 'tags', 'bookmarks', 'branches', 'summary', 'filediff', 'diff',
   'annotate', 'filelog', 'archive', 'static', 'graph', 'help',
]
为此:

__all__ = [
]
这将禁用所有web命令;您仍然可以查看回购协议列表,但不能查看更多有关回购协议的信息


我确实检查了
hg clone
hg pull
,但没有检查
hg push

这个解决方案有一个很大的缺点:
hg serve
没有访问控制,所以如果你想启用推送,你只能允许每个人都使用。问题中没有提到访问控制,所以我认为这是不必要的。