Subversionで1つのブランチのみを処理する場合、気にする必要がありますか?トランクで作業を高速化することはできませんか?
これは、Subversionで開発する方法です。
- トランクあり
- 新しい開発ブランチを作る
- そのブランチで新しい機能を開発します
- 機能が完了すると、トランクにマージされ、ブランチが削除され、トランクから新しい開発ブランチが作成されます
プロダクションにリリースしたいときは、トランクからタグを作ります。バグ修正は、そのタグからのブランチで行われます。このバグ修正はトランクにマージされます。
これが、機能の完了後に新しい開発ブランチを作成する理由です。このようにして、バグ修正はすぐに新しいコードに含まれます。
以下は明確にする必要がある図です:
これは、これが最も効率的な作業方法ではないという感じがあります。コミットする前にローカルでビルドします。これには5〜10分かかります。これはかなり長い待ち時間として経験されていることを理解できます。
開発ブランチの考え方は、トランクは常にリリースの準備ができているということです。しかし、これは私たちの状況ではもう当てはまりません。場合によっては、機能の準備がほぼ整っており、一部の開発者は既に次の機能のコーディングを開始します(そうでない場合、1人または2人の開発者が完了してマージするのを待っています)。
次に、機能1が完了すると、トランクにマージされますが、機能2の一部のコミットが含まれています。
では、ブランチは1つしかないので、開発ブランチを気にする必要がありますか?私はトランクベースの開発と抽象化による分岐について読んでいますが、ほとんどの記事は抽象化による分岐の部分に焦点を当てています。数回のリリースにまたがる大きな変更の印象を受けました。これは私たちが抱えている問題ではありません。
どう思いますか?トランクで作業できますか?最悪のシナリオは(私が思うに)トランクからタグを作成し、必要なコミットをチェリーピックする必要があるということです(一部のコミット/機能はまだ本番稼働の準備ができていないため)。