配置Mercurial的内置服务器

时间:2013-03-07 18:49:30

标签: version-control mercurial

我正在尝试安装Mercurial设置,以便使用我们的遗留代码对其进行评估。我目前使用的“服务器”只是在我们的Intranet上运行带有SP3的Windows XP的桌面。 “客户端”安装在我的本地桌面上,也运行带有SP3的Windows XP。 (我也在两台机器上使用TortoiseHG。)

Web服务器正在http://localhost:8000运行,我可以在浏览器中查看存储库。但是,当我尝试检测到repo的传出更改时,我收到HTTP 404错误。我可以看到请求显示在服务器的日志中,所以我指向正确的位置,但它显示GET http://host:8000/reponame?cmd=capabilities HTTP/1.1 404。无论我改变什么设置,我似乎无法让客户端成功执行针对repo的命令。有谁知道为什么这不起作用?

3 个答案:

答案 0 :(得分:0)

我有类似的设置,我遇到了类似的问题。

我使用以下命令运行我的HG服务(它在批处理文件中):

hg.exe serve --prefix mercurial --address 123.12.1.1 --port 8008 --web-conf hg-web.conf --accesslog hg-access.log --errorlog hg-error.log

在hg-web.conf中我有:

[web]
style = default
allow_push = *
push_ssl = false

[paths]
my-repo = c:\hg\my-repo

通过此设置,我可以通过访问网址http://ip:port/mercurial/my-repo

来访问我的存储库

我可以毫无问题地推进。

尝试此设置,我希望它可以帮助您解决问题。

答案 1 :(得分:0)

好吧,当我在TortoiseHG中启动内部服务器时(对于单个仓库,来自Workbench主菜单的Repostory - Start Web-server

  • 服务器窗口告诉'在localhost:8000上运行',但真正服务器侦听所有接口(netstat -na显示TCP 0.0.0.0:8000 0.0.0.0:0 LISTENING
  • 在fork中进行clone-edit-commit并测试传出(直接从THG)我看到

% hg --repository Z:\clone outgoing http://10.1.14.94:8000/

comparing with http://10.1.14.94:8000/

searching for changes

changeset: 39:c57a9357ec55

tag: tip

user: I

date: Fri Mar 08 17:00:05 2013 +0600

summary: Test-change

有些时候我也从另一个主持人那里推出了这些Mercurial回购。服务器配置很简单,所有都是在TortoiseHG设置中完成的。

我在mercurial.ini中的[web]部分(仅此而已)

[web]
port = 8000
encoding = UTF-8
allow_archive = bz2, gz, zip
style = gitweb

(现在推送禁用,只在拉动模式下工作)

PS:Windows XP SP3上的TortoiseHg版本2.7.1

答案 2 :(得分:0)

推送意味着将变更集从一个仓库移动到另一个仓库。你没有声明你制作了两个独立的回购克隆,然后尝试从A推到B.所以让我们假设你在这里感到困惑,并谈论这种混乱:想象一下我试图从我自己的回购推动到hg服务实例运行我自己的repo。这就像试图给自己打电话告诉自己一些事情。

其次,如果您真的想从A推送到B,并且A中确实有需要转到B的更改,那么,您的实际问题可能是您没有获取存储库的URL正确输入你的GUI工具,我认为是Tortoise HG。在学习的同时从命令行再次尝试。如果您在此处收到错误,请发送错误:hg push http://myserver:8000

我第一次尝试使用Mercurial时,经过长期使用Subversion的历史,我开始认为我需要一个“服务器”组件,而不是我实际做的。在subversion中,服务器是提交发生的地方。在mercurial中,提交发生在本地,当您推送到远程(可能是中央)服务器时,您团队中的其他人会看到您的更改。这是最大的不同。我猜你正试图推动,因为提交是在本地进行的。如果你对提交和推送之间的区别感到困惑,那么我建议你看看http://hginit.com/

就设置服务器而言,我可以推荐三种相当简单的选项:

  1. 从命令行“hg serve”,如其他答案所示。容易,仅供临时使用。非常适合学习。

  2. 在Apache中安装Mercurial(比在IIS中安装Mercurial更容易),为具有完全身份验证和可能加密的永久Web服务器安装。如果您在Mercurial维基上使用hgwebdir说明,则需要大约一个小时。如果您使用预先构建的解决方案,则应该花费更少的时间。我使用Bitnami为Windows预先构建的解决方案,最近在5分钟内获得了一个。 Bitnami提供了安装程序,可以获得python,apache,mercurial和其他东西,所有这些东西都安装在他们称之为“堆栈”的东西上工作(一堆已经工作的东西)。

  3. 这是非常出色的解决方案。使用BitBucket.org上的免费私人网络存储库。公共(开源)和私人(小团队和个人)使用免费,大型团队相当便宜。管理员努力为您服务?只需登录网站即可。你已经完成了。

相关问题