SVN レイアウト — ベスト プラクティス
-
16-09-2019 - |
質問
CVS では、複数のディレクトリを含むプロジェクトがあります。夜間ビルドをビルドするには、同じ CVS プロジェクト内の別のディレクトリから内容を取得する必要がある夜間ビルドがあります。したがって、SVN に移行する場合は、そのことを念頭に置いて、別のリポジトリからチェックアウトできるようにビルド スクリプトを変更する必要があります。
関連する SVN QA を読みましたが、回答が必要な独自の質問があります。
できます:
/trunk
/tags
/branches
/3rdparty
私たちが開発するものはすべて /trunk から出てきて、変更しないサードパーティはすべて /3rdparty に送られます。
さて、夜間のビルド スクリプトはトランクにタグを付け、タグをチェックアウトし、必要なサードパーティのものを適切なディレクトリにチェックアウトして、ビルド プロセスを開始する必要があります。
ビルド結果 (コンパイル済みのもの) は NFS マウント上に一定期間保持されるため、統合チームは 2 週間前に戻って問題を再現できます。
私の拠点はすべてカバーされていますか?
解決
SVN レッドブック ここ には、さまざまなプロジェクト タイプのレイアウトとその管理方法に関する多くの情報が含まれています。
フック/トリガー/外部を使用して、「サードパーティ」と呼ばれる独立したリポジトリからデータを取り込むこともできます。したがって、開発者が 1 つのリポジトリをチェックアウトすると、3 番目の部分も取得します。懸念事項を分離しながら、コンポーネントのリポジトリから統合されたリポジトリを表示する方法はたくさんあります。
幸運を
他のヒント
これはハドソンするやクルーズコントロールのようなビルドエンジンを利用して価値があるかもしれません。 作業の流れはわずかに異なっている - タグは、ビルド後に作られていますが、あなたはあなたにそれをある程度制御を与え、余分なモジュールを得ることができます。 ポイントは、すべてのdevの仕事はあなたのために行われ、あなたは毎晩のためのまともなフレームワークのビルドを取得し、あなたはすべてを制御し、監視するための素敵なWebインターフェイスを取得されます。
個人的に、私は適切な場所に適切なサードパーティのライブラリに引っ張るためにトランク上で、いくつかの外部定義を置くところ。あなたがサードパーティのライブラリのバージョンを変更したときにその方法は、あなたが変更をトランクに作成し、ビルドスクリプトを変更する必要はありません。 また、あなただけの適切なトランク/タグ/ブランチをチェックアウトすることが以前のバージョンを構築することができることを意味します。警告される - トランクの上にそれらを行うだけで、周りにそれらを散乱して殺人につながることができます。
。私はまた、多少のようなレポをレイヤーと思います:
project
/trunk
/branches
/tags
3rdparty
これはあなたにいくつかの点でより多くのトップレベルのプロジェクトを追加するためのより多くの範囲を与えるというだけの理由。依存関係が存在する場合、あなたはまだ、一方から他方へ右のバージョンを参照するために外観を使用することができます - - これは、あなたが完全に独立し、異なるプロジェクトを管理することができますこうすると、うまく一つのプロジェクトの変更静かに依存プロジェクトを変更/破壊を停止
。これは罰金であるだけでなく、別のレポを使用して行うことは可能ですが、その場合には、私は最初から別のレポに3rdpartyセクションを別々に置くと思います。
なぜあなたはトランクにサードパーティを移動しませんか?すべてのあなたは、サードパーティのコピーを分岐する場合の分岐に入ります。あなたのブランチは、既存のサードパーティ製のものに基づいて符号化されたためと明らかにあなたは文句を言わないBRANCHEにサードパーティ製のものに変更します。
私はあなたが話しているかのタグ付けについてとてもよく分かりません。バージョン番号は、あなたが意味することですか?それはバージョン番号がある場合は、スクリプトを通してそれを渡すと、ビルドにラベルを付けます。
「複数のディレクトリは、」あなたは独立したバージョンにしたい、別のコンポーネントがある場合は、独自のリポジトリ内の各を持っている必要があります。これは(すなわち、あなたは一般的に一緒にすべてのコンポーネントをタグ付けして分岐される場合)は、すべての単一自己完結型のプロジェクトである場合しかし、あなたはおそらく同じリポジトリ内のコードのすべてを置くことができます。
あなたは外観の使用を検討してくださいサードパーティ製のアーティファクト。
私のスクリプトはファイル(など、AssemblyInfo.csファイルにバージョン番号を調整)を変更し、トランクをチェックアウトし、そのタグを付けます。あなたはどのような方法でファイルを変更する必要がない場合は、最初にタグ付けすることにも良いでしょう。
それ以外は、あなたのセットアップには、少なくとも私にはいいですね。