Mercurial 变更集挂钩存在,状态为 -1
-
25-09-2019 - |
题
我在 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 问题 与此类似,但除了某处可能存在权限错误之外,它没有提供任何解决方案。
还有其他人遇到过这个问题吗?其他人可以进一步阐明这个问题,或者让我了解从哪里开始解决这个问题吗?谢谢。
解决方案
是 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
文件。
不隶属于 StackOverflow