リビジョン番号(およびその他のリビジョン情報)を含むリポジトリにファイルを追加する(または単にファイルを編集する)ために、VisualSVNサーバーである種のポストコミットフックスクリプトを実行したいと思います。クライアントスクリプトを使用してこれを実現できることはわかっていますが、サーバー上で実行したいと考えています。何かご意見は?それはまったく可能ですか?
2 に答える
VisualSVN Server Manager を介してサーバー フックを管理できます。
- サーバーマネージャーを起動し、
- リポジトリを選択し、
- アクション | アクション | すべてのタスク | フックを管理します。
ダイアログでは、リビジョン番号が 2 番目の引数であることがわかります。リビジョン番号を使用すると、他の多くのタスクを使用svn.exe
しsvnlook.exe
て実行できます...何か用途はありますか?
技術的には、post-commit フック スクリプトを使用してタスクを実行できます。ただし、元のトランザクション自体を変更してはならないことを理解する必要があります (つまり、開始フックまたはコミット前フックを試行しないでください) 。リビジョンの詳細を含む補足ファイルのコミットは、別のものとして実行する必要があります。
追加のリビジョン データを取得するには、フックで使用svnlook.exe
できます。
SVNBookを参照してください:
フック スクリプトはほとんど何でも実行できますが、フック スクリプトの作成者が自制すべき点が 1 つあります。それは、フック スクリプトを使用してコミット トランザクションを変更しないことです。. フック スクリプトを使用して、コミット中のファイルに存在するエラー、欠点、またはポリシー違反を自動的に修正したくなるかもしれませんが、そうすると問題が発生する可能性があります。Subversion は、リポジトリ データの特定のビットのクライアント側キャッシュを保持します。コミット トランザクションをこのように変更すると、それらのキャッシュは検出できないほど古くなります。この不一致は、驚くべき予期しない動作につながる可能性があります。トランザクションを変更する代わりに、pre-commit フックでトランザクションを検証し、必要な要件を満たさない場合はコミットを拒否する必要があります。おまけとして、ユーザーは、コンプライアンスを重視した慎重な作業習慣の価値を学びます。