2

我在 LAN 上使用 Mercurial SCM,使用普通共享文件夹而不是 HTTP,但在运行自动更新挂钩时遇到问题。

我已按照常见问题解答中的详细说明输入了此钩子。这会安装钩子,但是当我将某些内容推送到远程存储库时,会出现错误:

added 1 changesets with 1 changes to 1 files
running hook changegroup: hg update >&2
warning: changegroup hook exited with status -1

还有另一个与此类似的stackoverflow问题,但它没有提供任何解决方案,只是它可能是某处的权限错误。

有没有其他人遇到过这个问题,其他人可以对此有更多的了解,或者告诉我从哪里开始解决这个问题?谢谢。

4

1 回答 1

3

hg在您的标准搜索路径中吗?

用自定义脚本替换您的.hgrc配置,例如

[hooks]
changegroup = /var/tmp/myscript.sh

[ui]
debug = true

(unix)在/var/tmp/myscript.sh写这样的东西:

#!/bin/sh
set -e
echo ---------- >>/tmp/myscript.log
set >>/tmp/myscript.log
echo --- >>/tmp/myscript.log
pwd >>/tmp/myscript.log
hg update >>/tmp/myscript.log 2>&1

(unix) 不要忘记标记为可执行文件:chmod a+x /var/tmp/myscript.sh

(windows)对应的批处理文件myscript.bat为:

@echo off
echo ------ >>%TEMP%\myscript.log
set >>%TEMP%\myscript.log
echo --- >>%TEMP%\myscript.log
cd >>%TEMP%\myscript.log
hg update >>%TEMP%\myscript.log 2>&1

(windows) 当然,行.hgrcchangegroup = \your\directory\myscript.bat.

运行您的hg push命令以重现该问题。

检查/tmp/myscript.log文件的内容。

于 2011-01-05T19:11:09.710 回答