2009-08-26 16 views
2

ソースコントロールを使用する場合、私が慣れてきた方法はトランク上で開発し、QAに移動する直前にトランクを分岐することです。ソースコントロール分岐のさまざまなアプローチ

私は部門内の他の人と話していました。明らかに、開発サイクルの初めに新しいブランチを作成し、その開発作業を行うための別の作業方法についての情熱的な意見がありますブランチを作成し、最後にトランクにマージします。このアプローチのアイデアは、トランクを元の状態に保つことです。

私は、後者のアプローチが「標準的な」アプローチであると主張していることに非常に懐疑的ですが(別に言えばうれしいですが)、それはかなり一般的であると聞いても驚かないでしょう。私はそれにいくつかのメリットがあると思います(どの機能や機能セットをいつ配備するか選択しやすい)が、いくつかの欠点もあります(単一のブランチをすべてトランクにマージする必要があるため)

は、いくつかのその後の研究を行なったし、これを見つけた:http://www.lostechies.com/blogs/derickbailey/archive/2009/07/15/branch-per-feature-source-control-introduction.aspx

は、これらのアプローチの相対的な強みと弱みのために人々から自分の感覚を聞くために好​​奇心だろうされており、また、人々が使用している可能性のある他のアプローチについて。

答えて

2

これは、この前のSOの項目に非常によく似質問です:

Subversion - should anyone be developing off the trunk?

正確に同一ではないが、応答の概念の多くは同じです。

私の個人的な意見ですか?トランクはアクティブな開発用です。バージョンブランチ(およびリリースのタグ)には、 "元来の"ままにしたい古いバージョンの開発ラインを置く必要があります。アクティブな開発がトランク上であっても、「トランクは常にコンパイルすべきです」というメトリックを維持しようと試みることができます。

+0

Naw、これはまさに私が探していたものです。ありがとう。 –

+0

ええ、私は同じ意見を持っていますが、私は自分自身で、少なくとも私にとっては、他の何よりも歴史的偏見があることを今でも認識しています。あなたが提供したリンクの各キャンプにいくつか興味深い回答があります... –

2

1人のチームが同じものを扱っているので、トランクで作業し、リリースする前にブランチを作成するのは良い方法です。あなたは合併症を最小限に抑え、パッチをしなければならない場合、または何らかの理由で戻ってくる必要がある場合は、リリースごとに異なるブランチを持っています。

しかし、複数のチームと別々の作業をする場合、トランク内で衝突する可能性が高いため、これは機能しません。私はこれについて多くの経験を持っていないので、私はその周りのいくつかのアイデアを楽しみにしています。 1つのアプローチは、おそらく各チームごとに1つずつ、複数のブランチを作成し、トランクのリリースに入るブランチをマージすることです。 (私は欲求不満だけ想像することができます:)

+1

または、「トピックブランチ」ワークフローを使用します。それぞれの機能は別々のブランチで開発されます。 Subversionでどれくらいうまく動作するかはわかりません。 Gitが使用するワークフローです。 –

+0

機能は通常、コード内で互いにかなり離れているので、これはおそらくより良いでしょう。 Subversionは、コードの同じ行が変更されていない限り、コードをマージするのが得意です。 – crunchdog

2

私はトランクをきれいに保つことが好きです。これにより、いつでも動作中のバージョンをコンパイルし、修正版、ベータ版をリリースし、デモ版を作成できます。

変更は別々のブランチで行われます。これにより、トレーサビリティが向上し、ブランチのソースコントロールを活用して、暫定バージョンをチェックすることができます。理想的な世界では、マージ問題は[自動]テストでカバーされます。変更をトランクに統合する方が早いほど良いでしょう。

最終的に誰かを遅くするので、テストされていないコードをトランクに置かないでください。

関連する問題