4

作業ディレクトリがコミット前にsvn更新、ビルド、テストされていることを確認するsvnコミットフックを作成することは可能ですか? 少なくとも、開発者がコミットする前に、コードがトランク内の最新のコードでコンパイルおよびテストされていることを確認したいと考えています。これにより、開発者がさまざまなソース コードを変更してビルドが失敗した場合に、トランクでの統合の問題が回避されます。

別の方法は、更新されたファイルが存在する場合にコミットを防止することです (ただし、作業ディレクトリで必ずしも変更されていません)。

余談ですが、前の質問で述べたように、私の仕事はソースだけでなくバイナリもコミットしています。この理由の 1 つは、コミット時にバイナリ ファイルの競合が発生した場合、そのバイナリのソースに変更があったことがわかっているため、svn-update を実行して再コンパイルする必要があることです。また、マージと更新が苦痛になります。開発者がコミットする前に更新した場合、このチェックが必要になる可能性は低くなります。

4

1 に答える 1

1

SVN 自体は、ファイルが更新されていることを確認します。人々が更新ファイルをチェックインしていることを確認する必要はありません。

コンパイル/テスト部分では、TortoiseSVN を使用してクライアント側のフックを持つことができます。これにより、コードがコンパイルされ、プレコミット フックの一部としてテストが実行されます。すべての開発者がフックをセットアップしているかどうかを実際に確認することはできないことに注意してください。

Rake Commit タスクに似たものを見ることもできます

以下は、上記が行う手順です。

  1. コミット メッセージのプロンプト
  2. Subversion に新しいファイルを追加します
  3. Subversion から不足しているファイルを削除します
  4. SVN更新
  5. デフォルトの rake タスクを実行します (テストを実行する必要があります)。
  6. Cruisecontrol.rb をチェックして、ビルドが成功しているかどうかを確認します。
  7. コードをチェックインします
于 2011-06-26T13:25:40.480 に答える