Version control 配置Mercurial';s内置服务器

Version control 配置Mercurial';s内置服务器,version-control,mercurial,Version Control,Mercurial,我正试图在工作中安装Mercurial安装程序,用我们的遗留代码对其进行评估。我目前使用的“服务器”只是一个在我们内部网上运行WindowsXP和SP3的桌面。“客户端”安装在我的本地桌面上,也运行带SP3的Windows XP。(我在两台机器上都使用了龟甲。) web服务器正在http://localhost:8000,我可以在浏览器中查看存储库。但是,当我试图检测对repo的传出更改时,我得到了一个http404错误。我可以在服务器的日志中看到请求,因此我指向了正确的位置,但它显示了GETh

我正试图在工作中安装Mercurial安装程序,用我们的遗留代码对其进行评估。我目前使用的“服务器”只是一个在我们内部网上运行WindowsXP和SP3的桌面。“客户端”安装在我的本地桌面上,也运行带SP3的Windows XP。(我在两台机器上都使用了龟甲。)


web服务器正在
http://localhost:8000
,我可以在浏览器中查看存储库。但是,当我试图检测对repo的传出更改时,我得到了一个http404错误。我可以在服务器的日志中看到请求,因此我指向了正确的位置,但它显示了
GEThttp://host:8000/reponame?cmd=capabilities HTTP/1.1404
。无论我更改了什么设置,我似乎都无法让客户端成功地对repo执行命令。有人知道为什么这样做不起作用吗?

我有类似的设置,我也有类似的问题

我使用以下命令运行HG-serve(它位于批处理文件中):

在hg-web.conf中,我有:

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

[paths]
my-repo = c:\hg\my-repo
通过此设置,我可以通过访问url
http://ip:port/mercurial/my-回购

我可以毫无问题地推


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

好吧,当我在我的TortoiseHG中启动内部服务器时(对于单次回购,
Repostory
-
从工作台主菜单启动Web服务器

  • 服务器窗口显示“在本地主机上运行:8000”,但实际上服务器侦听所有接口(
    netstat-na
    显示
    TCP 0.0.0.0:8000 0.0.0:0侦听
  • 在fork中克隆编辑提交和测试传出(直接从THG)时,我看到了
%hg--存储库Z:\clone outgoinghttp://10.1.14.94:8000/

与http://10.1.14.94:8000/

搜索更改

变更集:39:c57a9357ec55

tag:tip

用户:I

日期:2013年3月8日星期五17:00:05+0600

摘要:测试更改

几天前,我还从我的另一位东道主那里得到了这些反复无常的回购协议。服务器配置很简单,所有的工作都是在TortoiseHG设置中完成的

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

(现在已禁用推送,仅在拉式模式下工作)


注:在Windows XP SP3上的TortoiseHg 2.7.1版推送意味着将变更集从一个回购移动到另一个回购。你没有说过你制作了两个独立的回购协议克隆,然后尝试从A推到B。所以,让我们假设你在这里感到困惑,并讨论这种困惑:想象一下,我试图从我自己的回购协议推到一个运行在我自己的回购协议上的hg serve实例。这就像给自己打电话告诉自己一些事情

第二,如果你真的想从A推到B,而A中确实有需要到B的变化,那么,你的实际问题可能是你没有将存储库输入的URL正确地输入到你的GUI工具中,我想这就是Tortoise HG。在学习过程中,请从命令行重试。如果您在此处发布错误:
hg pushhttp://myserver:8000

我第一次尝试Mercurial时,在使用Subversion已有很长的历史之后,我开始认为我比实际需要更多的“服务器”组件。在subversion中,服务器是提交发生的地方。在mercurial中,提交发生在本地,当您推送到远程(可能是中央)服务器时,团队中的其他人就会看到您的更改。这是最大的区别。我猜你是想推,因为提交发生在本地。如果您对提交和推送之间的区别感到困惑,那么我建议您看看

至于设置服务器,我可以推荐三个相当简单的选项:

  • 命令行中的“hg serve”,如其他答案所示。简单,仅供临时使用。非常适合学习

  • 在Apache内部安装Mercurial(比在IIS内部安装Mercurial更容易),用于具有完全身份验证和加密功能的永久web服务器。如果您使用Mercurial wiki上的说明,应该需要大约一个小时。如果您使用预构建的解决方案,那么所需的时间应该会少得多。我使用了Bitnami针对windows的预构建解决方案,最近在5分钟内完成了一个。Bitnami提供了可以安装python、apache、mercurial和其他东西的安装程序,所有这些都安装在他们所谓的“堆栈”中并协同工作(Buncho已经可以工作了)

  • 这是一个非常好的解决方案。使用BitBucket.org上的免费私有web存储库。免费供公共(开源)和私人(小型团队和个人)使用,对大型团队来说非常便宜。你的行政努力?只不过是登录一个网站。你完成了


  • 那么,您为您的HG Serve运行批处理文件,然后它就启动并运行了?您是否正在尝试推送到您自己的存储库?或者你有两个存储库?我想您可能会感到困惑,HgServe实例运行在一台单独的机器上,所以我的假设是它将被视为远程存储库。代码已经提交到我的本地存储库,我所要做的就是将初始变更集推送到远程repo,这样我就可以将其拉到另一台机器上。当我尝试HgPush时,我得到了“HTTP错误406:不可接受”。这就是我上面的人写的关于编辑hgweb.conf的内容
    [web]
    style = default
    allow_push = *
    push_ssl = false
    
    [paths]
    my-repo = c:\hg\my-repo
    
    [web]
    port = 8000
    encoding = UTF-8
    allow_archive = bz2, gz, zip
    style = gitweb