特定の条件が当てはまる場合、Mercurial リポジトリへのプッシュを禁止しようとしています。ただし、ユーザーが を使用する場合は、プッシュが関係なく通過することが不可欠です。push --force
pre-push
コマンドライン引数をフックに渡すフックを使用して、プッシュを実行しているマシンでこれを行うのは簡単であることを私は知っています。ただし、フックは伝播されないため、何らかの形でリポジトリのすべてのユーザーにフックを配布し、それらをいじらないようにする必要があります。
したがって、状態をチェックし、必要に応じてプッシュを中止するフックをリポジトリ サーバーに配置する方法があると考えましたがprechangegroup
、プッシュ中にユーザーが使用したコマンド ライン引数を取得する方法がわかりません。このフック。リポジトリサーバーでフックを使用するだけでこれを達成する方法はありますか?
可能な回避策は、pretxnchangegroup
代わりにフックを使用し、最新の変更セットのコミット メッセージが特定のパターンに従っている場合にプッシュを許可することです。ただし、この--force
オプションは、メッセージを正しく取得するためにダミーのコミットを実行する必要がないため、リポジトリ ユーザーの観点からははるかに簡単に見えます。