質問

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

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

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

環境間できれいに簡単に展開する方法(テストと生産)を探しています。

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

  1. トランクからテストブランチ、テストブランチから生産ブランチへのみをマージすることにより、どの修正がどの環境を流れるかを完全に制御できます
  2. Subversionの対応するブランチのログを単に見るだけで、各環境でどのコードが実行されているかを簡単に確認できます

誰かがこれに似た解決策の経験がありましたか?私が欠けている潜在的な落とし穴や監視はありますか?

役に立ちましたか?

解決

誰かがこれに似た解決策の経験がありましたか?

はい :-)

私が欠けている潜在的な落とし穴や監視はありますか?

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

実装されたすべての機能を取得したら、予定されているリリースごとにトランクからリリースブランチを作成することをお勧めします。あなたの分岐の両方が両方とも等しい。次に、リリースブランチで安定してテストするチームを持っています。開発はトランク上で並行して行われます。リリースが磨かれたら、修正をトランクに戻します。

各リリースの手順を繰り返します。このようにして、合併の数を制限し、常に最先端である何かに取り組んでいる人になります。

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

他のヒント

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

AtlassianのJiraのようなバグ追跡ツール(私はスポンサーではありません)と組み合わせて、あなたのセットアップはさらに透明になります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top