これは非常に簡単に実行できるはずですが、何らかの理由で私の Mercurial リポジトリでは機能しません。私が望むのは、hg update
誰かがプッシュするたびにリモートリポジトリが自動的に実行されることだけです。だから私は私の .hg/hgrc ファイルにこれを持っています:
[hook]
changegroup = hg update
シンプルですね。しかし、何らかの理由で、これは決して実行されません。これを行うシェルスクリプトも書いてみました。.hg/hgrc は次のようになります。
[hooks]
changegroup = /home/marc/bin/hg-update
hg-update は次のようになります。
#!/bin/sh
hg help >> /home/marc/works.txt;
hg update >> /home/marc/works.txt;
exit 0;
繰り返しますが、これは更新されません。の内容はhg help
に書き出されますがworks.txt
、 には何も書き出されませんhg update
。ここで私が見逃している明らかなものはありますか?これは何日も私を悩ませてきましたが、私はそれを機能させることができないようです.
アップデート
繰り返し-v
ますが、ワークステーションからリモート リポジトリにプッシュするコマンド ラインでスイッチを使用しても、それらのecho
行が.hg/hgrc
. ただし、同じファイルシステム (SSH 経由でログインしている) のリポジトリのクローンからプッシュすると、次のようになります。
bash-3.00$ hg -v push ../test-repo/ ../test-repo/ へのプッシュ 変更の検索 1 個のチェンジセットが見つかりました running hook prechangegroup: echo "リモート リポジトリは `hg tip -q` にあります" echo "リモート リポジトリ wdir は `hg Parents -q` にあります" リモートリポジトリは 821:1f2656753c98 にあります リモートリポジトリの wdir は 821:1f2656753c98 にあります 変更セットの追加 マニフェストの追加 ファイル変更の追加 1 つのファイルに 1 つの変更を加えた 1 つの変更セットを追加しました running hook changegroup: echo "更新中.... `hg update -v`" echo "リモート リポジトリは `hg tip -q` にあります" echo "リモート リポジトリ wdir は `hg Parents -q` にあります" 更新しています....マニフェストを解決しています license.txt の取得 1 個のファイルが更新され、0 個のファイルがマージされ、0 個のファイルが削除され、0 個のファイルが未解決です リモートリポジトリは 822:389a6c7276c6 にあります リモートリポジトリの wdir は 822:389a6c7276c6 にあります
したがって、機能しますが、同じファイルシステムからプッシュする場合のみです。ネットワーク経由で別のワークステーションからリポジトリにプッシュしようとしても機能しません。