私は、水銀サーバーへのプッシュの受信チェンジセットを調べ、チェンジセットが特定の標準に準拠していない場合はプッシュを拒否するスクリプトを作成したいと思います。私のオプションはprechangegroup
,pre-changegroup
、pretxnchangegroup
フックのようです。残念ながら、prechangegroup
とpre-changegroup
フックは着信チェンジセットにアクセスできないので、pretxnchangegroup
が必要です。フックの実行中でもhttp://hgbook.red-bean.com/read/handling-repository-events-with-hooks.html#sec:hook:pretxnchangegroupのドキュメントによると、これはリポジトリを使用している人々のために一貫性のない状態につながることができます:このフックが実行されているが、他のMercurialのプロセスがこのリポジトリにアクセスする場合スクリプトをベースにしたMercurialサーバーへのプッシュを拒絶するにはどうしたらいいですか?
」、彼らはことができるようになります彼らが恒久的であるかのように、ほぼ追加されたチェンジセットを見ることができます。これを避けるために措置を講じなければ、競争状態につながる可能性があります。
私のスクリプトがチェンジセットを拒否している間に誰かがプルをすると、私は本当に奇妙なことに夢中になりません。私は使用できる別のフックがありますか?そうでない場合は、私が取る必要がある「それらを避けるためのステップ」は何ですか?私のフックの間にリポジトリをロックする方法はありますか?
実際、これは修正されています。 Btw、そのように私の名前を書きましたか? :-) –
@Martin Geisler:私の捧げ物はあまりにもあなたを気にしないことを願っています:)私はいつでもどこでもソースコードを解放しているDVCSのメイスターの前で弓を傾けるでしょう! –
いいえ、私はそれがかなり面白いと感じました! :-) –