我使用普通的共享文件夹而不是HTTP在局域网上使用Mercurial SCM,我在运行自动更新挂钩时遇到问题。
我已将此挂钩输入为detailed in the FAQ。这会安装钩子,但当我将某些东西推送到远程存储库时,我收到一个错误:
added 1 changesets with 1 changes to 1 files
running hook changegroup: hg update >&2
warning: changegroup hook exited with status -1
有another stackoverflow question与此类似,但除了可能是某处的权限错误之外,它没有提供任何解决方案。
有没有其他人遇到过这个问题,是否有其他人可以对此有所了解,或者让我先知道从哪里开始解决这个问题?感谢。
答案 0 :(得分: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)当然,.hgrc
中的行是changegroup = \your\directory\myscript.bat
。
运行hg push
命令重现问题。
检查/tmp/myscript.log
文件的内容。