3

私の職場では、適切な SVN フックの導入を開始しました。「適切な」とは、「多くのポリシー チェックを行う」ことを意味します。現在、私たちのポリシーは、Perl::Tidy チェックが有効になっている Perl::Critic で構成されています。ただし、特に後者は、コミットに多くの時間がかかり、いくつかのファイルが操作され、SVN はコミット後のフックが完了するまで返されません。

ポリシーチェックを犠牲にすることなく、ポストコミットフックで時間を節約する方法はありますか?

4

3 に答える 3

3

レポート (エラーのリストなど) のみが必要な場合は、Continious Intergationシステムを使用してコミット後のアクションを実行できます。このシステムにより、ソース管理システムに変更が加えられた後に任意のアクションを実行できます。シナリオの例を次に示します。

  • SVNリポジトリへのコミット
  • しばらくすると、CC はこの変更を検出し、スクリプトを実行します。
    • SVN から最新バージョンを入手する
    • Perl::Critic や Perl::Tidy などのチェックを実行します
  • いずれかのチェックが失敗した場合
    • 詳細なエラー レポートを作成します (Web から入手できます)。
    • 必要に応じて電子メール通知を送信する

多くの優れた連続インターゲーション システムがあります。私はハドソンが好きです。

于 2009-10-16T13:05:43.287 に答える
2

これは、ブランチベースの開発が役立つもう 1 つの場所です。基本的に、実行したいタスクごとに新しいブランチを作成します。ブランチは品質チェックから除外されますが、マージ先trunkまたはその他のものは除外されます。したがって、日々のコミットは高速で、マージが遅いだけです。そして、そのタスクを実行するボットをまとめることで、その苦痛を軽減できます。

于 2009-10-16T14:56:12.863 に答える
1

フックが「いいえ」と言った場合にコミットを失敗させたい場合、コミットはフックがチェックを完了するまで待つ必要があります。

チェックを高速化する以外に、あなたにできることは何もありません。(古いマントラを除いて:頻繁にコミットしてください。そうすれば、一度に多くのファイルをコミットすることはありません。)

于 2009-10-16T12:59:57.340 に答える