2

Mercurialが次のことを行うためのフックを書きたいと思います。

  • 中央リポジトリで実行し、チェンジセットがプッシュされたときに実行します(「input」または「changegroup」フックを使用する必要があると思います)
  • 各コミットメッセージで、「issue:[0-9]*」の形式の文字列を検索します
  • 文字列が見つかった場合は、Webサービスを呼び出し、問題番号、コミットメッセージ、および変更されたファイルのリストを提供します

では、初心者のために、「input」または「changegroup」フックから各コミットのコミットメッセージを取得するにはどうすればよいですか?これを超えて、他のポイントを達成する方法についてのアドバイスもあります。

助けてくれてありがとう。

4

2 に答える 2

2

リポジトリに適用される各変更セットに対して呼び出されるフックを使用する必要がincomingあります (pull、push、または unbundle を介して)。

呼び出しスクリプトでは、現在の変更セットは環境変数idを介してアクセスできます。Python では、 .HG_NODEos.environ['HG_NODE']

やりたい方法に応じて、提供されているbugzilla フックを出発点として見てください。

于 2011-11-03T19:13:41.220 に答える
2

changegroupフックは、プッシュごとに 1 回呼び出されます。各チェンジセットを分析したい場合は、incomingフックが必要です (フックはありません) 。環境変数inputに ID を指定して、チェンジセットごとに呼び出されます。HG_NODEコミット メッセージは、eghg log -r $HG_NODE --template '{desc}'または API 経由で取得できます。

于 2011-11-03T18:53:39.900 に答える