2013-03-07 88 views
2

我试图在工作中安装Mercurial安装程序以使用我们的旧代码进行评估。我目前使用的“服务器”仅仅是一台在我们的Intranet上运行带有SP3的Windows XP的桌面。 “客户端”安装在我的本地桌面上,也运行带有SP3的Windows XP。 (我也在两台机器上使用TortoiseHG。)配置Mercurial的内置服务器

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

+0

您是否试图推送到您自己的存储库?或者你有两个存储库?我想你可能会感到困惑。 – 2013-03-11 13:32:45

回答

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 

采用这种设置,我可以通过访问url访问我的存储库http://ip:port/mercurial/my-repo

我可以推送没有问题。

试试这个设置,我希望它可以帮助你解决你的问题。

+0

所以,你运行你HG服务的批处理文件,然后它的启动和运行? – NoSmallPlansHere 2013-03-07 21:07:37

+0

是的。就那么简单。 – 2013-03-08 04:30:49

0

好吧,当我在TortoiseHG启动内部服务器(单回购,Repostory - Start Web-server从工作台主菜单)

  • 服务器窗口告知“运行在localhost:8000”,但真正服务器的所有侦听在叉接口(netstat -na节目TCP 0.0.0.0:8000 0.0.0.0:0 LISTENING
  • 在克隆 - 编辑提交和(直接从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设置中完成。

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

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

(推现已停用,只有拉模式工作)

PS:TortoiseHg 2.7.1版本的Windows XP SP3

0

推进装置以移动变更从一个回购到另一个回购。你还没有说你做回购的两个独立的克隆,然后尝试从A推到B.因此,让我们假设你困惑在这里,并谈论困惑:想象一下,我试图从我自己的回购推到hg服务实例运行反对我自己的回购。这就像试图打电话告诉自己一些事情。其次,如果你真的试图从A推到B,并且确实有需要到达B的A的变化,那么,你的实际问题可能是你没有得到库输入正确到您的GUI工具,这是我的龟T Hogoise HG。在学习的时候,从命令行再次尝试。如果你在这里发生错误发布错误:hg push http://myserver:8000

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

至于建立一个服务器,有三个很容易的选择,我可以推荐:

  1. “hg serve”来自命令行,如其他答案所示。很容易,只用于临时使用。完美的学习。

  2. 安装的Mercurial里面的Apache(更容易比安装的Mercurial里面IIS)的永久网络服务器完全认证和加密可能。如果您在Mercurial wiki上使用hgwebdir指令,它应该会花费你大约一个小时。如果您使用预先构建的解决方案,则应该花费更少的时间。我使用Bitnami的预制窗口解决方案,最近在5分钟内完成了一个。 Bitnami使得可用的安装程序,将让蟒蛇,Apache的,善变的,和其他的东西,所有安装在他们所谓的“堆栈”一起工作(一堆Ö已经工作的东西)。

  3. 这里的真正辉煌的解决方案。在BitBucket.org上使用免费的私人网络资源库。免费供公众(开源)和私人(小团队和个人)使用,对于大型团队来说相当便宜。管理员为你付出的努力只不过是登录到一个网站。你完成了。

+0

hg serve实例在单独的机器上运行,所以我的假设是它将被视为远程存储库。代码已经提交给我的本地存储库,我试图做的就是将最初的变更集推送到远程仓库,这样我就可以将它放到不同的机器上。当我尝试hg push http:// myserver:8000时,出现“HTTP Error 406:Not Acceptable”。 – NoSmallPlansHere 2013-03-11 21:00:19

+0

这就是我上面的家伙放下有关编辑hgweb.conf – 2013-03-11 22:35:22