2

HTTP の代わりに通常の共有フォルダを使用して LAN 経由で Mercurial SCM を使用していますが、自動更新フックを実行するのに問題があります。

FAQ に詳述されているように、このフックを入力しました。これでフックがインストールされますが、何かをリモート リポジトリにプッシュすると、エラーが発生します。

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

これに似た別のスタックオーバーフローの質問がありますが、どこかでアクセス許可エラーである可能性がある以外に解決策はありません。

他の誰かがこの問題を抱えていましたか?他の誰かがこれについてこれ以上光を当てたり、どこから修正を始めるべきかを教えてくれたりできますか? ありがとう。

4

1 に答える 1

3

hg標準検索 PATH に入っていますか?

.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 に答える