6

CVS では、そこに複数のディレクトリを持つプロジェクトがあります。ナイトリー ビルドをビルドするために、同じ CVS プロジェクト内の別のディレクトリから何かを取得する必要があるナイトリー ビルドがあります。そのため、SVN に移行する場合はビルド スクリプトを変更して、さまざまなリポジトリからチェックアウトする必要があります。

関連する SVN QA を読みましたが、回答が必要な独自の質問があります。
できます:

/trunk
/tags
/branches
/3rdparty

私たちが開発するものはすべて /trunk から出てきて、私たちが変更しないサードパーティは /3rdparty に行きます。

これで、ナイトリー ビルド スクリプトはトランクにタグを付け、タグをチェックアウトし、必要なサードパーティのものを適切なディレクトリにチェックアウトしてから、ビルド プロセスを開始する必要があります。
ビルド結果 (コンパイル済みのもの) は、NFS マウントに一定期間保持されるため、統合チームは 2 週間前に戻って問題を再現できます。

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

4

5 に答える 5

9

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

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

幸運を

于 2009-07-17T17:56:09.553 に答える
2

ハドソンやクルーズコントロールのようなビルドエンジンを利用する価値があるかもしれません。ワークフローは少し異なります。タグはビルド後に作成されますが、それをある程度制御できる追加のモジュールを取得できます。重要なのは、すべての開発作業が自動的に行われ、ナイトリービルド用の適切なフレームワークが得られ、すべてを制御および監視するための優れたWebインターフェイスが得られるということです。

個人的には、トランクにいくつかの外部定義を配置して、適切なサードパーティライブラリを適切な場所にプルします。そうすれば、サードパーティのライブラリバージョンを変更するときに、トランクに変更を加えることができ、ビルドスクリプトを変更する必要がありません。また、適切なトランク/タグ/ブランチをチェックするだけで、古いバージョンをビルドできることも意味します。注意してください-トランク上でそれらを行うだけで、それらを散らばらせると殺人につながる可能性があります。

また、レポを次のようにレイヤー化します。

project
 /trunk
 /branches
 /tags
3rdparty

これにより、ある時点でトップレベルのプロジェクトを追加するための範囲が広がるからです。これを行うと、さまざまなプロジェクトを完全に独立して管理できます。また、依存関係がある場合は、外部を使用して適切なバージョンを相互に参照できます。これにより、1つのプロジェクトの変更が、依存プロジェクトを黙って壊したり変更したりするのをうまく防ぐことができます。

別のリポジトリを使用してこれを行うこともできますが、その場合は、最初から別のサードパーティセクションを別のリポジトリに配置します。

于 2009-07-21T12:46:02.247 に答える
1

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

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

于 2009-07-18T01:35:59.277 に答える
1

サードパーティをトランクに移動しませんか? ブランチするたびに、サードパーティのコピーがブランチに入ります。また、ブランチは既存のサードパーティのものに基づいてコーディングされているため、明らかに、ブランチのサードパーティのものを変更することはありません。

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

于 2009-07-17T18:00:21.620 に答える
0

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

それ以外は、あなたのセットアップは少なくとも私には良さそうです。

于 2009-07-17T17:56:39.443 に答える