
リポジトリの作成時に、カスタム コミット フックを「デフォルト」フックとして設定する方法はありますか?
答え1
'svnadmin create /path/to/repo' コマンドによって新しいリポジトリにインストールされる 9 つの標準フック (start-commit、pre/post-commit、pre/post-revprop-change、pre/post-lock、pre/post-unlock) 以外に、新しく作成されたすべてのリポジトリの「デフォルト」フックとして追加のフックを自動的に含める方法は、私にはわかりません。
リポジトリ パスの変数セットを使用して svnadmin create コマンドを呼び出し、その後にカスタム コミット フックを path/to/repo/hooks フォルダーにコピーし、それをすべての新しいリポジトリに使用する、新しいリポジトリを作成するためのラッパー シェル スクリプトを構築できると思います。
最後に、このカスタムフックはコミットフックであると述べているので、Subversion によるバージョン管理議論するときフックスクリプト(強調は筆者による):
フック スクリプトではほぼ何でもできますが、フック スクリプトの作成者が制限すべき点が 1 つあります。フックスクリプトを使用してコミットトランザクションを変更しないでくださいフック スクリプトを使用して、コミットするファイルに存在するエラー、欠陥、またはポリシー違反を自動的に修正することは魅力的ですが、そうすると問題が発生する可能性があります。 Subversion は、リポジトリ データの特定のビットのクライアント側キャッシュを保持しており、この方法でコミット トランザクションを変更すると、それらのキャッシュは検出できないほど古くなります。 この不整合により、予期しない動作が発生する可能性があります。 トランザクションを変更する代わりに、コミット前のフックでトランザクションを検証し、必要な要件を満たしていない場合はコミットを拒否する必要があります。 ボーナスとして、ユーザーは、慎重でコンプライアンスを重視する作業習慣の価値を学びます。