2009-07-17 6 views
6

CVSには複数のディレクトリがあるプロジェクトがあります。 夜間ビルドを構築するために、同じCVSプロジェクト内の別のディレクトリのものをプルする夜間ビルドがあります。だから私はそれを念頭に置いておく必要があり、私はSVNに移動する場合は、別のリポジトリから物事をチェックするためにビルドスクリプトを変更する必要があります。

私は関連するSVN QAを読んでいますが、私は答えが必要であるという私自身の質問があります。
私が行うことができます。私たちは開発し、すべてが/トランクから出てくると、私たちは変更されません任意の3rdpartyは/ 3rdpartyに行く
SVNレイアウト - ベストプラクティス

/trunk 
/tags 
/branches 
/3rdparty 

を。

すべての良い、今夜のビルドスクリプトは、トランクにタグを付け、タグをチェックアウトし、適切なディレクトリに必要な3rdpartyのものをチェックアウトし、ビルドプロセスを開始する必要があります。
インテグレーションチームは2週間前に戻って問題を再現することができるように、ビルドの結果(コンパイル済みのもの)はNFSマウントで一定期間保持できます。

私の拠点はすべてカバーしていますか?

答えて

9

SVNレッドブックhereには、さまざまなプロジェクトタイプのレイアウトに関する情報とその管理方法が多数含まれています。

フック/トリガー/外部を使用して、「第三者」と呼ばれる独立したレポからデータを取得することもできます。開発者が1つのレポをチェックアウトすると、彼は3番目の部分も取得します。懸念を分離する方法はたくさんありますが、コンポーネントからの統一レポを提示する方法があります。

幸運

+1

+1サードパーティのコンポーネントを別々のレポに保つために+1。 –

+0

私は本のリリースブランチについていくつか見てきたかもしれませんが、正確にどこにあるのかを指摘できればいいです。ありがとう – pal4life

0

私のスクリプトは、トランクをチェックアウトするには、(など、AssemblyInfo.csファイルにバージョン番号を調整)ファイルを変更し、そのタグを付けます。ファイルを変更する必要がない場合は、最初にタグを付けても良いでしょう。

それ以外の設定は、少なくとも私にとってはうれしいですね。

+0

あなたのベースフォルダの外にサードパーティを参照する必要があります良い考えではありません。私はtrunk \ libの下にフォルダを作成し、そこにすべてのサードパーティのものを入れます。こうすることで、ベースの外への参照を避けることができます。 IMGLO –

+0

あなたはどこにでもあなたのスクリプトを投稿しましたので、私は見てみることができますか?ありがとう – un33k

+0

FinalBuilderのスクリプトです。私に電子メール(プロフィールのアドレス)を送ってください。私はあなたにコピーを送付します。 FinalBuilderを使用しているのでなければ、おそらくあなたはそれほど良いことではありません。 –

1

なぜサードパーティをトランクに移動しないのですか?すべての支店が第三者のコピーを支店に持って行くとき。そして、あなたのブランチは既存のサードパーティのものに基づいてコード化されているので、明らかにあなたはブランチでサードパーティのものを変更することはありません。

あなたが話していることをタグ付けすることについてはあまりよく分かりません。それはあなたが意味するバージョン番号ですか?それがバージョン番号であればスクリプトを通過させ、ビルドにラベルを付けます。

+3

サードパーティのトランクには?いいえ、そんなに狂気が嘘です。 3rdパーティーは、基本的に赤書のベンダーブランチであり、それらを別々に保つことは私の投票です。 –

1

「複数のディレクトリ」が独立してバージョンアップする個別のコンポーネントである場合、個別にタグ付けできるようにそれぞれのリポジトリに独自のリポジトリを用意する必要があります。しかし、これがすべて単一の自己完結型プロジェクト(つまり、一般にタグ付けしてすべてのコンポーネントを一緒に分岐する場合)であれば、おそらくすべてのコードを同じリポジトリに入れることができます。

サードパーティのアーティファクトにexternalsを使用することを検討する必要があります。

2

hudsonやクルーズコントロールなどのビルドエンジンを使用する価値があります。 作業の流れは若干異なります。タグはビルドの後に作成されますが、その上でタグを制御できる余分なモジュールを得ることができます。 ポイントは、すべての開発作業はあなたのために行われ、あなたの夜間ビルドのためのまともなフレームワークを取得し、あなたはすべてを制御し、監視するための素晴らしいWebインターフェイスを取得します。

個人的には、適切なサードパーティライブラリを適切な場所に引き込むために、いくつかの外部定義をトランクに入れています。そうすることで、サードパーティライブラリのバージョンを変更したときにトランクを変更し、ビルドスクリプトを変更する必要はありません。 これはまた、適切なトランク/タグ/ブランチをチェックアウトするだけで、古いバージョンをビルドできることを意味します。警戒してください。胴に乗せ、周囲に散らばって殺人につながる可能性があります。

私も多少のようなレポをレイヤーしたい:

project 
/trunk 
/branches 
/tags 
3rdparty 

これはあなたにいくつかの点でより多くのトップレベルのプロジェクトを追加するためのより多くの範囲を与えるというだけの理由。これにより、異なるプロジェクトを完全に独立して管理することができます。依存関係が存在する場合に外部バージョンを使用して正しいバージョンを参照することができます。

別のreposを使っても可能ですが、これはうまくいきますが、その場合は3rdpartyセクションを最初から別のレポに分けます。

関連する問題