0

作業中のソース管理 (ほとんどの場合はVault ) をアップグレードしており、ブランチの方法論に移行しており、使用するフォルダー構造の解決に問題があります。

トランクを開発ラインとして使用する予定であり、ブランチはリリースとそのリリースのバグ修正になります。

2 つのフォルダー構造を思いついたので、それぞれの長所と短所を知りたいと思いました。

Projects
  |-> Trunk
    |-> Data Access
    |-> Business
    |-> Desktop
    |-> Website
  |-> Branches
    |-> Branch 01
      |-> Data Access
      |-> Business
      |-> Desktop
      |-> Website

Projects
  |-> Data Access
    |-> Trunk
    |-> Branches
      |-> Branch 01
  |-> Business
    |-> Trunk
    |-> Branches
      |-> Branch 01
  |-> Desktop
    |-> Trunk
    |-> Branches
      |-> Branch 01
  |-> Website
    |-> Trunk
    |-> Branches
      |-> Branch 01

最初のソリューションでビルド マシン ( Cruisecontrol.net ) でソース コントロール ブロックを使用すると、次のように言えます。

<path>$\Projects\trunk\</path>

branchesブランチを作成することはかなり似ていますが、フォルダー内の最新のブランチを取得することは可能ですか? そうしないと、リリースごとに ccnet 構成を編集する必要があります。

2 番目の方法 (多くの人がこの方法を提案しています) を使用する場合、ビルド マシンはどのようにして関連するすべてのプロジェクトを取得するのでしょうか? このようなものかもしれません:

<path>$\Projects\*\trunk\</path>

一部のプロジェクトが分岐されていて、他のプロジェクトは分岐されていない場合、ブランチが存在しない場合にトランクを取得するにはどうすればよいですか (これが可能な場合)。

すべてのトランクを取得してから、ブランチで上書きするとうまくいきますか? 存在しないブランチにアクセスしようとするとエラーになりますか?

4

3 に答える 3

3

最初の方法論は非常に信頼できます。何を出荷しているかを正確に把握できます (リリースごとに 1 つのエントリ ポイント (トランクまたはブランチ/タグ) があるため)。

2 番目の方法論にはいくつかの問題があります。

  1. すべてのプロジェクトは同時に分岐/タグ付けする必要があります
  2. マージはプロジェクトごとに個別に行う必要があります

どちらのオプションも可能ですが、最初のオプションが最も簡単で安全な代替手段であると考えています。

Web サイトはリリースから独立している可能性が高いため (2007 年に作成されたブランチからリリースする場合は、2007 の Web サイトではなく 2009 を使用します)。

Project
  |
  +- Trunk

Website
  |
  +- Trunk
于 2009-03-23T21:54:06.393 に答える
0

私は、きめ細かく、非常に組織化された、自己完結型の構造化されたリポジトリを好みます。リポジトリ保守プロセスの一般的な(理想的な)アプローチを示す図があります。たとえば、リポジトリの初期構造(すべてのプロジェクトリポジトリに必要)は次のとおりです。

/project
    /trunk
    /tags
        /builds
            /PA
            /A
            /B
        /releases
            /AR
            /BR
            /RC
            /ST
    /branches
        /experimental
        /maintenance
            /versions
            /platforms
        /releases
于 2009-11-19T11:57:52.410 に答える
0

<folder>最後に、ソース管理プラグイン (Vault の API を使用) を作成して、タグでいくつかのエクストラを指定できるようにしました。

<folder>$/branches/%latest%</folder>

ブランチ フォルダー内の最新のブランチを取得します。

于 2009-03-26T15:16:00.880 に答える