2

私は現在、仕事用にさまざまなソース管理ソリューションを評価しており、分岐についていくつか質問があります。

ブランチの作成方法については基本的な理解がありますが、ビルド マシン (CruiseControl.net) がブランチを作成してビルドする方法がわかりません。

多くのプロジェクトがあり、それらはすべて他のプロジェクトによって依存されています (他にもあります): ユーティリティ > データ アクセス > ビジネス ロジック > 共通 GUI > ( Web サイト | デスクトップ クライアント )

ビルド マシンが次のことができるように、リポジトリをどのように構造化しますか (違いがある場合は Vault)。

  1. トランクを構築する
  2. 「最新」のブランチを構築する

大まかなフォルダー構造および/またはクルーズコントロールからの取得方法に関する説明は素晴らしいでしょう.

ありがとう

編集:

明確にするために、開発にはトランクを使用し、リリースごとにブランチを使用する予定です。

4

3 に答える 3

2

「最新のブランチ」とはどういう意味ですか? ブランチは、トランク外の拡張開発に使用する必要があります。トランクには、常に最新の製品コードが含まれている必要があります。

各プロジェクトには次trunkbranchesフォルダーが必要です。

Project 1
  |-> trunk
  |-> branches
Project 2
  |-> trunk
  |-> branches
    etc.

その後、ビルド マシンは任意のトランクまたはブランチを必要な場所にローカルにチェックアウトできます (相互リンク プロジェクトでは、相対ディレクトリ パスが機能するように設定する必要があります)。疑似スクリプトで:

checkout project1/trunk /builds/project1
build /builds/project1

checkout project1/branches/myBranch /builds/project1
build /builds/project1
于 2009-03-23T11:21:50.453 に答える
2

プロジェクトのリリース サイクルが異なる場合 (プロジェクト 1 のバージョンは 1.0 ですが、プロジェクト 2 は既に 1.1 です)、Mark が提案したソリューションはうまく機能します。すべてのプロジェクトが相互に依存している場合、単純な構造から始めます

My Big Project
  | 
  +-- trunk
  |     |
  |     +-- utils
  |     |
  |     +-- data
  |     |
  |     +-- business
  |     |
  |     +-- gui (web)
  |     |
  |     +-- gui (swing)
  | 
  +-- branches
  | 
  +-- tags

そうすれば、分岐/タグを実行するときに、すべて(コード全体)を分岐したことを確認できます。そうしないと、タグ付け時に常に 1 つのプロジェクトを見逃す危険があります。

ビルド サーバーは、トランク (すべてを含む) または 1 つのタグ/ブランチ (すべてを含む) をチェックアウトし、リリースをビルド/インストールするだけです。

utils パッケージが安定したら、いつでも兄弟プロジェクトに「アップグレード」し、Maven/Ivy を使用して依存関係を管理できます。

于 2009-03-23T21:33:20.733 に答える
0

ウラジミールのスキームでタグとブランチがどのように使用されるかを明確にするためです。製品のバージョン 1.x が廃止され、バージョン 2.1 が世に出て、バージョン 3.0 に取り組んでいるとします。

trunk <- you're working on version 3.0 here
 project1
 project2

branches
 ReleaseBranch-1.0
 ReleaseBranch-2.0 <-- fixes to version 2.1 (the current production version) get committed here, then merged into the trunk

tags
 Release-1.0 <-- a copy of the source that was used to build version 1.0
 Release-1.1
 Release-1.2
 Release-2.0
 Release-2.1

継続的インテグレーション/ビルド サーバーでは、次の 2 つのプロセスが必要になります。

  • バージョン管理システムのトランクを指すもの
  • バージョン管理システムの ReleaseBranch-2.0 を指すもの

『 Subversion を使用した実用的なバージョン管理』という本は Subversion用に設計されていますが、上記のようにリポジトリを編成する方法について説明しています。

于 2009-04-25T13:40:38.083 に答える