2

非常に大きなサードパーティ ライブラリ (Boost) をソース管理にコミットしました。独自のリポジトリでセットアップしました。他のプロジェクトがこの特定のバージョンを svn:externals できるように、そのバージョンにタグを付けました。

コードをチェックインするたびに継続的インテグレーション (CI) サーバーが完全なチェックアウトを行うことに気付くまでは、これで問題ありません。(明らかに、最初は意図的にそのように CI サーバーをセットアップしました)。これにより、CI サーバー側でのチェックアウト時間が非常に長くなる可能性があります。

問題は、これは良いことなのか?ということです。誰かがこのパターンを処理するためのより良い方法を提案できますか?

編集: TeamCity CI サーバーを使用しています。

4

2 に答える 2

6

デフォルトでは、TeamCity は、エクスポートされたソースをキャッシュするように構成されています (チェックアウト モード: サーバー上で自動的に)。つまり、最初のビルドには時間がかかる場合がありますが、変更されたファイルのみをロードするため、後続のビルドは大幅に高速になります。自動クリーン チェックアウトは、特定の状況でのみ発生します。

ドキュメントとソースを含むサード パーティ ライブラリ全体をチェックインした場合は、ソリューションのコンパイルに必要なバイナリだけが残るように、それらの余分なファイルを除外するチェックアウト ルールを作成することができます (コンパイルされたバイナリで)。

TeamCity では、各ビルド構成で複数の VCS ルートを使用できるため、メインの VCS ルート (デフォルト) で外部を除外し、他のリポジトリを指す別の VCS ルートを追加して、チェックアウト ルールを配置する方が簡単な場合があります。予期されるディレクトリでプリコンパイル済みライブラリをブーストします。

クリーン チェックアウトとチェックアウト ルールの詳細については、次を参照してください。

http://www.jetbrains.net/confluence/display/TCD4/Clean+Checkout#CleanCheckout-sourcescache http://www.jetbrains.net/confluence/display/TCD4/VCS+Checkout+Rules

于 2009-06-09T04:03:26.403 に答える
3

いくつかの可能性が思い浮かびます:

  1. CI を変更して、段階的に更新します。
  2. svn:externals を避け、代わりにビルド中にチェックアウトをシンボリック リンクします。
于 2009-05-26T22:41:30.007 に答える