Mercurial自动更新问题

时间:2010-05-21 20:09:42

标签: configuration mercurial auto-update

我们开始使用Mercurial进行源代码管理。在我们推送到“中央”存储库后,我们已将HGRC配置文件配置为执行自动更新。 对于某些PC,我们会收到此错误消息:

warning: changegroup hook exited with status -1

HGRC看起来像这样:

[ui] 
username=ADMIN
verbose=true

[hooks]
changegroup = hg update >&2

稍后我们手动执行更新,一切正常。

2 个答案:

答案 0 :(得分:3)

我有一个非常类似的问题。现在终于可以了:

  

changegroup = cmd / c hg update

粗体cmd / c导致cmd.exe生成,它将按照我们的意愿执行hg update,但现在cmd.exe的退出值将为0.

更长的故事:

设置:win 2008服务器。
mercurial 1.9.3
hgwebdir通过普通的http,它是一个内部网络

错误: 我的错误很有趣,而不是 -1 ,就像你的情况一样 “警告:更改组挂钩退出状态 1
无论如何,没有进行更新。

我发现我可以将钩子放入.hgrc或hgweb.config中,问题在这里或那里都是一样的。我最终把它放到hgweb.config中,如下所示,所以所有的存储库都是自动提交,这比总是拥有这个松散​​的分支要好。我想要自动提交的主要原因是vcs&上的存储库。构建服务器现在保持最新版本,这使得管理任务通常更简单。

  

[web]
push_ssl = False allow_push = *

     

[collections]
c:\ Dev \ Reps = c:\ Dev \ Reps

     

[ui]
debug = true

     

[hooks]
changegroup = cmd / c hg update

答案 1 :(得分:2)

它可能与用户actually executing the hook有关,用户可能不是具有正确权限的用户。

您是否有管理Mercurial存储库的IIS网络服务器?

(来自主题:)

  

根据Mercurial / IIS的经验,我建议尝试的事情:

     
      
  • (a)运行简单的非HG命令是否有效? cmd.exe的权限将   影响进程外的python钩子。
  •   
  • (b)像“python -c "import sys; sys.exit(0)"”这样的简单钩子是否有效?
  •   
  • (c)如果你做到这一点,你能否确认该过程正在运行   用户,你认为它正在运行,带有一个类似于:
  • 的钩子   
import win32api
username = win32api.GetUserName()
(write username to a file so you can read it)