Mercurial localhost“站点”代码概述。问题

时间:2010-10-17 23:23:27

标签: mercurial

Mercurial提供在本地网络服务器上查看代码,日志,分支等的功能。

只需在项目文件夹中输入“hg serve”命令,即可在http://127.0.0.1:8000/上查看所有这些内容

我在这里有一些问题。

1)看起来你一次只能为一个项目做这件事,因为这保留了8000端口。所以如果我有许多不同的项目,我希望多个人能够随时查看,我该怎么办?

2)“文件”概述会立即列出所有现有文件。没有树结构或任何东西,它只是在一个长行中列出它们,仅通过框的CSS具有最大宽度设置的事实转到换行符。有没有办法解决这个问题,还是我坚持下去?

3 个答案:

答案 0 :(得分:4)

hg serve意味着允许两个同事暂时暴露一个回购,而另一个将拉动变化。它不是一个完整的回购出版服务,它只是一个非常有用的工具,可以在短时间内传达变化。

如果您想(永久)从您自己的服务器中公开多个仓库,您将需要执行更多操作:https://www.mercurial-scm.org/wiki/PublishingRepositories

您还可以使用http://bitbucket.org等公共托管服务(在条件允许的情况下免费提供私有项目),Sourceforge.net或http://code.google.com/hosting(仅允许开源项目)。

答案 1 :(得分:3)

hg serve接受控制侦听端口的-p选项。

hg serve -p 8001

答案 2 :(得分:3)

使用--web-conf参数,您可以使用hgwebdir配置文件,该文件从一个URL指定多个存储库。

我实际上发现如果你不想在apache上设置hgwebdir,一个很好的解决方案是使用mercurial-server通过ssh服务(推拉)存储库(仅限证书)并使用hg serve公开带有图形日志等的只读Web视图。显然,这假设Web视图不会有大量流量 - 如果您需要,请花点时间使用mod_wsgi设置apache。

例如,我的个人服务器(使用主目录为/home/hg的mercurial-server)的/etc/init.d/hgserve调用类似于:

hg serve --daemon --port 8000 --web-conf /home/hg/hgweb.config --accesslog /var/log/mercurial/access.log --errorlog /var/log/mercurial/error.log

hgweb.config只包含:

[paths]
repos = /home/hg/repos/*

然后显示它在/home/hg/repos下找到的每个存储库的列表。如果我想要隐藏任何内容(例如mercurial-server使用的hgadmin repo),我只需将以下内容添加到repo的hgrc

[web]
hidden = True

作为文件列表 - 您可以通过修改模板并将--template参数传递给hg serve来获取某个位置。在您的mercurial库中将是mercurial/templates目录 - 它包含hg serve使用的所有模板 - 将其复制到某处然后进行修改。各种网页的模板位于mercurial/templates/paper目录中(mercurial/templates/static包含样式表和javascript)。

不幸的是,我做的唯一修改是添加一条虚线,将图中的每个节点链接到它的文本(我发现它使图形更具可读性)所以我不知道你是否能够只用模板为文件列表做任何事情。