5

私は現在、いくつかの論理レイヤーと複数のフロントエンドで構成される.NETのプロジェクトに取り組んでいます。SVN構造の大まかな表現は次のとおりです。

trunk
---doc
---lib
---src
------console
---------console.vbproj
------domain
---------domain.vbproj
------...
------web
---------web.vbproj
---.sln

私たちの日々の開発はすべてトランクで行われます-これはすべての開発者がチェックアウト/コミットする場所です。

環境(テストと本番)間でクリーンかつ簡単にデプロイする方法を探しています。

私の考えは、トランクからテストと本番の2つのブランチを作成することです。ソリューションとすべてです。私は次の理由でこれを自分自身に正当化しています:

  1. トランクからテストブランチ、およびテストブランチから本番ブランチにマージするだけで、どの変更がどの環境に流れるかを完全に制御できます。
  2. Subversionの対応するブランチのログを見るだけで、各環境で実行されているコードを簡単に確認できます。

誰かがこれに似たソリューションを使った経験がありますか?私が見逃している潜在的な落とし穴や見落としはありますか?

4

2 に答える 2

7

誰かがこれに似たソリューションを使った経験がありますか?

はい :-)

私が見逃している潜在的な落とし穴や見落としはありますか?

トランクからのすべての変更をマージする可能性が非常に低いため、時間の経過とともにテストブランチとリリースブランチが開発環境から離れていくという問題に直面します。その後、開発者はわずかに異なる環境で作業し、ブランチの同期を維持することで多くの時間を無駄にします。これは、マージマニアのアンチパターンとして知られています。

すべての機能を実装したら、計画されているリリースごとにトランクからリリースブランチを作成することをお勧めします。あなたが分岐するとき、両方は等しいです。次に、リリースブランチを安定させてテストするチームを作ります。開発はトランク上で並行して行われます。リリースが洗練されたら、修正をトランクにマージします。

リリースごとに手順を繰り返します。このようにして、マージの数を制限し、常に最先端の何かに取り組んでもらうことができます。

これらの側面があなたの決定に役立つことを願っています。リンクには、他の多くのアンチパターンも表示されます。それらすべてを読んでおくと、学んだ教訓に気づき、それをよりよく解決するためのヒントが得られるかもしれません。

于 2010-09-07T21:53:27.320 に答える
2

同じレイアウトを問題なく使用しています。必ず最新のsvnバージョンを使用してください。マージトラッキングが欠落しているため、1.5より前のバージョンは使用しないでください。

atlassianのjira(私はスポンサーではありません)のようなバグ追跡ツールと組み合わせると、セットアップがさらに透過的になります。

于 2010-09-07T21:39:07.443 に答える