私たちは、ASP.NETアプリケーションのバージョンを実行する3つの環境またはWebサイト(開発、ステージング、プロダクション)を用意しています。 SVNと継続的統合(Teamcity)を使用して、各Webサーバーにアプリケーションを自動的に展開するのに役立ちます。並列タスクベースの開発の分岐戦略
現在の開発ワークフローは、タスク(または作業オーダー)システムに基づいています。 開発者には、完了する必要のあるタスクが与えられます。 多くの開発者は、同時にプロジェクトで作業できますが、アプリケーションのさまざまな部分で作業できます。
私の現在のソリューションでは、開発者はすべてのタスクに対して別々のブランチを作成します。 ユーザがトランクをコミットすると、ソースコードがコンパイルされ、デベロッパーのWebサーバーにデプロイされます。
開発者1は、新しいタスクを開始し、トランクソースコードから新しい分岐を作成します(「タスク1」とします)。
彼は自分のコードを自分のブランチにコミットしてから、そのブランチをトランクにマージします。
彼の変更は残りのコードと一緒にコンパイルされ、dev Webサーバーに展開されます。
開発者2は、新しいタスクを開始し、トランクから(Dev 1の変更で)ブランチを作成します。
彼は彼の変更を行い、彼のコードを「タスク2」にコミットし、そのブランチをトランクにマージします。
コードはもう一度コンパイルされ、dev Webサーバーにデプロイされます。
開発者1はまだ完了していませんが、開発者2の変更は本番環境に展開する準備ができています。
Dev 2は、「タスク2」を「プロダクション」ブランチにマージします。
ここに問題があります。 Dev 1によって行われた変更の一部は製造中であり、これは不正です。
開発を継続し、各タスクを1つずつ実装できる分岐戦略を見つける必要があります。
ご意見はありますか? SVNは仕事のための正しいツールですか?
UPDATE
私は今、「Dev」の分岐が私たちのdevのサーバーに展開し、クリーンで私たちの「生産」ブランチと同期トランクを維持することを考えています。この特定の問題は、すべての開発者がいくつかの開発者の変更を加えたものではなく、きれいなトランクから自分のブランチを作成するため、このようになっているようです。
テストを完了するには、アプリケーションが主に従来のASPで構築されているため、すべての開発者が変更をデベロッパーサーバー(トランク経由)にデプロイする必要があります。 – Jason
Devブランチを作成することも回避策です。 – Windy