7

私は現在、仕事中に継続的な統合環境を設定中です。私たちはVisualSVN ServerとCrusieControl.NETを使用しています。場合によってはビルドが失敗し、CruiseControl.NET作業コピーに矛盾があるという症状が現れます。これは私がVisual Studioソリューションをセットアップした方法によるものだと思います。うまくいけば、私たちがこの環境で実行するプロジェクトが増えるほど、それらを設定する方法の理解が向上するため、この段階でどうして紛争が起こるのか疑問に思っていません。ビルドを修正するために、私は作業コピーを削除し、強制的に新しいビルドを行います - これは毎回(現在)動作します。ですから私の質問は、作業コピーを継続的な統合ビルドプロセスの有効な部分を削除することです。どうすればよいでしょうか?ビルド前のタスク - CruiseControl.NETで作業コピーを削除する

私はMSTaskとコマンドラインからdeleteを呼び出すなどのソリューションを試しましたが、私は運がないと思います。その冗長なもののために

申し訳ありません - 良い仕事これはベータ:)

+0

SubversionのCleanCopyは、バージョン1.4.1で今すぐ実装されています。あなたの設定でtrueにするだけでCleanCopyを設定する必要があります – Alex

答えて

9

ビルドの前後に完全な削除を行うのは良い方法です。これは、ビルド環境が古くなったファイルを取得する可能性がないことを意味します。あなたの建物は、リポジトリにあるものと厳密には対照的です。

Nantで作業コピーを削除することは可能です。

ナントでは、削除したいフォルダとは別のフォルダにクリーンスクリプトを作成し、CC.netから呼び出すことにしました。

これはバッチファイルでも可能であると仮定します。私はリリースビルドを行うために行くとき、私は常に行われるべき、任意の驚きを望んでいないとして、私は完全な削除を行うには、私のCIサーバを好むrmdirコマンドでhttp://www.computerhope.com/rmdirhlp.htm

@pauldoo

を見てくださいきれいな状態から。しかし、なぜなら、両方を扱うことができるはずです。

0

それは非常に一般的であり、一般に重大なビルドを行う前に、「クリーン」を行うための任意のビルドプロセスのための良い方法です。これにより、以前のビルドの「アーティファクト」が出力を汚染するのを防ぎます。

クリーンアップは基本的に、作業コピーを削除して実行している作業です。

0

@Bradバーカー

クリーンだけでビルド製品を一掃することを意味します。

作業コピーを削除すると、他のものもすべて削除されます(ソースファイルやプロジェクトファイルなど)。

一般的には、通常の開発者が行うことを複製するので、完全な削除を行わずにビルドマシンを動作させることができればうれしいです。更新中に見つかった競合は、開発者が期待できることに対する早期の警告です。正式なリリースで


@jamie

はい、それは完全にクリーンなチェックアウトを行う方が良いでしょう。だから私はそれがビルドの目的にかかっていると思う。

2

@jamie:継続的な統合サーバーを使用するたびにクリーンビルドを実行できない理由の1つがあります。私が取り組んだいくつかのプロジェクトでは、クリーンビルドに80 +分(チェックアウトに数千のC++ファイルで構成された組み込みプロジェクト、次に複数のターゲットに対してコンパイル)が必要です。この場合、クリーンなビルドがインクリメンタルビルドでは得られないものをキャッチする可能性があることから、速やかなフィードバックのメリットを考慮する必要があります。私たちの場合、私たちはビルドプロセスの改善と並列化に取り組み、同時にCIマシンの増分ビルドを可能にしました。クリーンなビルドを行っていなかったため、いくつかの問題がありましたが、夜間または週に1回クリーンなビルドを行うことで、CIマシンの高速フィードバックを失うことなくリスクを排除できます。

2

もし、CC.NETのjiraをチェックアウトすると、SubversionのためのCleanCopyを実装するためのパッチがチェックインされ、TFSと同様にソースコントロールブロック内でCleanCopyをtrueに設定するだけです。

関連する問題