0

を実行しようとしてhg pull -uいますが、次のエラーが発生します。

searching for changes
/bin/sh: !: not found
abort: preoutgoing.mq-no-push hook exited with status 1

私の .hgrc にはこのフックが含まれており、これが問題の原因であると推測しています。

preoutgoing.mq-no-push = ! hg qtop > /dev/null 2>&1

hg incoming期待どおりに変更のリストが表示され、ローカルまたはリモートのリポジトリに mq パッチがありません (hg qappliedそしてhg qseries何も返されません)。

簡単な修正は、.hgrc ファイルのこの部分をコメントアウトすることでした。その後、プルできましたが、マージすると、リポジトリに複数のヘッドがあることがわかりました。それがエラーの原因ですか? もしそうなら、より正確なエラーメッセージがいいかもしれません。そうでない場合、誰かがより良い回避策を持っていますか?

4

2 に答える 2

0

my/bin/shは jsh であることがわかりましたが、これは定義が!異なります。これを回避するために、.hgrc ファイルのコマンドを変更して、次のように明示的に bash を呼び出しました。

prechangegroup.mq-no-pull = bash -c "! hg qtop > /dev/null 2>&1"
preoutgoing.mq-no-push = bash -c "! hg qtop > /dev/null 2>&1"
于 2013-06-05T08:24:54.150 に答える