レポをクローンする (フックまたは構成を更新する) ときに、mercurial が自動的に何かを実行するようにします。ドキュメンテーションはそれが不可能であると述べており、いくつかの非常に正当な理由を示しています。
Hooks do not propagate
In Mercurial, hooks are not revision controlled, and do not propagate when you clone,
or pull from, a repository. The reason for this is simple: a hook is a completely
arbitrary piece of executable code. It runs under your user identity, with your
privilege level, on your machine. No comments
It would be extremely reckless for any distributed revision control system to
implement revision-controlled hooks, as this would offer an easily exploitable way to
subvert the accounts of users of the revision control system. No comments
明らかに、mercurial 自体は問題を解決しません。問題を解決するために水銀以外は何も望んでいないと明確に述べているので、答えは次のとおりです。あなたが求めていることは不可能です。
問題を解決する唯一の方法は、すべてのユーザーが、適切なフックをインストールするなど、必要なアクションを実行する特定のスクリプトを少なくとも 1 回実行/インストールする必要があることです。
これについて賢くしたい場合:
- 正しい構成を .hg またはユーザーにコピーするためのフックをインストールする、実行する 1 回限りのスクリプトを作成します。
- フックがインストールされたら、スクリプトを更新して構成の更新をユーザーに配布できることを確認してください
- メッセージをコミットするための特別なマーキングをフックに追加させる
- 特別なメッセージを持たない中央リポジトリのコミットを拒否する
少し複雑ですが、それがあなたの要件に最も近いと思います:
- ユーザーがスクリプトを 1 回実行すると忘れてしまう
- 実行しなかった場合、中央リポジトリにコミットできないことを確認できます