2011-02-11 14 views
3

私は、水銀サーバーへのプッシュの受信チェンジセットを調べ、チェンジセットが特定の標準に準拠していない場合はプッシュを拒否するスクリプトを作成したいと思います。私のオプションはprechangegroup,pre-changegrouppretxnchangegroupフックのようです。残念ながら、prechangegrouppre-changegroupフックは着信チェンジセットにアクセスできないので、pretxnchangegroupが必要です。フックの実行中でもhttp://hgbook.red-bean.com/read/handling-repository-events-with-hooks.html#sec:hook:pretxnchangegroupのドキュメントによると、これはリポジトリを使用している人々のために一貫性のない状態につながることができます:このフックが実行されているが、他のMercurialのプロセスがこのリポジトリにアクセスする場合スクリプトをベースにしたMercurialサーバーへのプッシュを拒絶するにはどうしたらいいですか?

」、彼らはことができるようになります彼らが恒久的であるかのように、ほぼ追加されたチェンジセットを見ることができます。これを避けるために措置を講じなければ、競争状態につながる可能性があります。

私のスクリプトがチェンジセットを拒否している間に誰かがプルをすると、私は本当に奇妙なことに夢中になりません。私は使用できる別のフックがありますか?そうでない場合は、私が取る必要がある「それらを避けるためのステップ」は何ですか?私のフックの間にリポジトリをロックする方法はありますか?

答えて

3

引用した段落のコメントを展開すると、Meister Geislerは、hg 1.2以降に問題が解決されたというユーザーの所見を確認しました。これにより、永続的な着信チェンジセットは表示されず、プルされません。

+0

実際、これは修正されています。 Btw、そのように私の名前を書きましたか? :-) –

+0

@Martin Geisler:私の捧げ物はあまりにもあなたを気にしないことを願っています:)私はいつでもどこでもソースコードを解放しているDVCSのメイスターの前で弓を傾けるでしょう! –

+0

いいえ、私はそれがかなり面白いと感じました! :-) –

関連する問題