デプロイメント リポジトリが、中央の Mercurial サーバーから離れた特定のブランチのみを更新するようにしようとして困惑しています。
具体的には、デプロイ リポジトリに変更をプルする人が、
hg pull -b deployment <central-repo-url>
それよりも
hg pull <central-repo-url>
フックを使用する必要があると思いますがpre-pull
、その方法がわかりません。
さらに、同じテクニックですが、よりユーザーフレンドリーな方法です。
ワークフローの [acl.deny.branches] と [acl.allow.branches] を定義するACL 拡張機能
最も簡単な方法は、そのリポジトリの hgrc でとして定義するエイリアスを定義することです。次に、引っ張ろうとする試みは、あなたが望むことをします。ただし、無限ループを引っ張ろうとするような方法でこれを台無しにするのは非常に簡単です。pull
pull -b deployment
pretxnchangegroup
フックをお勧めします。これにより、インポートされている変更セットを調べて、気に入らない場合は拒否できます。あなたが強制したいルールは、ヒントは常に展開ブランチにある必要があると思われます(変更グループは、展開にマージされた他のブランチから変更セットをドラッグする可能性がありますが、ヒントは常に展開から来る必要があります)。それは次のようなフックになります。
[hooks]
pretxncommit.deployment = hg log -r tip --template '{branch}\n' | grep '^deployment$'