私の職場では、適切な SVN フックの導入を開始しました。「適切な」とは、「多くのポリシー チェックを行う」ことを意味します。現在、私たちのポリシーは、Perl::Tidy チェックが有効になっている Perl::Critic で構成されています。ただし、特に後者は、コミットに多くの時間がかかり、いくつかのファイルが操作され、SVN はコミット後のフックが完了するまで返されません。
ポリシーチェックを犠牲にすることなく、ポストコミットフックで時間を節約する方法はありますか?
私の職場では、適切な SVN フックの導入を開始しました。「適切な」とは、「多くのポリシー チェックを行う」ことを意味します。現在、私たちのポリシーは、Perl::Tidy チェックが有効になっている Perl::Critic で構成されています。ただし、特に後者は、コミットに多くの時間がかかり、いくつかのファイルが操作され、SVN はコミット後のフックが完了するまで返されません。
ポリシーチェックを犠牲にすることなく、ポストコミットフックで時間を節約する方法はありますか?
レポート (エラーのリストなど) のみが必要な場合は、Continious Intergationシステムを使用してコミット後のアクションを実行できます。このシステムにより、ソース管理システムに変更が加えられた後に任意のアクションを実行できます。シナリオの例を次に示します。
多くの優れた連続インターゲーション システムがあります。私はハドソンが好きです。
これは、ブランチベースの開発が役立つもう 1 つの場所です。基本的に、実行したいタスクごとに新しいブランチを作成します。ブランチは品質チェックから除外されますが、マージ先trunk
またはその他のものは除外されます。したがって、日々のコミットは高速で、マージが遅いだけです。そして、そのタスクを実行するボットをまとめることで、その苦痛を軽減できます。
フックが「いいえ」と言った場合にコミットを失敗させたい場合、コミットはフックがチェックを完了するまで待つ必要があります。
チェックを高速化する以外に、あなたにできることは何もありません。(古いマントラを除いて:頻繁にコミットしてください。そうすれば、一度に多くのファイルをコミットすることはありません。)