2011-01-11 13 views
2

UATがクローズされていない状態のリビジョンなしでプロダクションリビジョンを展開する方法については、ここで説明します。バージョンの展開に関するソース管理の問題

私たちはSVNを使用しています。私たちは、同じファイルに対して事前改訂なしにはリビジョンを取ることができないことを認識しました。

私はこの例でそれを説明してみましょう: 我々は3つのリビジョンが同じファイルで行った:

はR1:UAT(準備ができていません)、閉じられていない R3:UAT UATは R2(展開する準備ができて)閉じ閉鎖(展開準備完了)

UATが閉じられている変更(例:r1とr3)のみを展開します。 SVNでr3にもr2の変更が含まれているため、これはできません..

これをどのように機能させるのですか?多分分岐?または、r1を取ってr2がUATを閉じられるまで待つ?あなたは私がUATが閉じているときに、トランクにそれらをバックマージ、各UATの問題のために分岐することをお勧めしたい、と言っているのかに基づいて

おかげ

答えて

3

Main Branch 
- Branch R1 
- Branch R2 
- Branch R3 

支店1、2と3がすべて同じ時刻に開始されますが、R1とR3はR2である前に、UAT閉鎖され、そして決定が行くように構成されています

そのようにあなたが持っていると思いますあなたが持っているものと一緒に生きてください。

したがって、R1とR3をメインにマージできますが、R2はそのままにしておいてください。

Main Branch 
- Staging Branch 
- - Branch R1 
- - Branch R2 
- - Branch R3 

あなたはその後、ステージングブランチにあなたの機能ブランチをマージすることができ、ライブにマージする前に、そこに余分な統合テストを実行する:あなたがが、この過程で行くことにした場合

、私もお勧めしたいです。これは、2つの機能ブランチが一緒にマージされたときにポップアップする競合問題を解決するのに役立ちます。

複数の開発者と複数のリリース間で分岐する際に気を付けなければならないことは、どのブランチにどのような変更があり、どのブランチがどこにマージされたかを追跡する方法を見つけることです。これはあなたの作業環境と実践によって完全に決まるでしょう。

+0

次の点をどのように考慮しますか:A)リリースが必要な場合にのみブランチが作成される不安定なトランクではなく、安定したトランク方法を使用していない可能性があります。 B)R3の変更がR2の変更に依存する場合はどうですか? – jgifford25

+0

@jgifford R3の変更がR2の変更に依存する場合、UATをどのように通過でき、起動準備ができていないのか分かりません。私はあまりUATをやっていないが、それは正しいと思いますか?どんなバージョンコントロールでも、常に安定したトランクを試してみるのが最善です。不安定なトランクから作業している場合は、安定したトランクを作成して、バージョンコントロールとそのリリース戦略をリファクタリングしてみてください。 – Refugee

+1

これは、あなたが必要とするものを示してくれるように設計された、比較的簡単な設定であることを指摘したいと思います。バージョン管理の設定の多くは、作業の仕方、開発者の数、作業の種類などによって異なります。 – Refugee

2

ほとんどの場合、リリースごとに分岐することをお勧めします。これが行われると、通常は個々のサイトに依存しますが、リリースがUATテストのために外出するのは通常です。これにより、最終リリースの準備ができていない変更を削除することができます。

したがって、リリースブランチを作成して、そこにすべてのUAT変更を入れることができます。 R1から分岐し、R3の変更をマージするか、R3から分岐し、svn mergeを使って変更R2を取り消すことができます(SubversionのオンラインマニュアルのUndoing Changesを参照)。

これで、現在のプロジェクトに影響を与えることなく、リリースの変更を追加または削除できます。 R2が後でリリース用に承認されると、それをリリースブランチにマージすることができます。

UATインシデントごとに別々のブランチを作成することはお勧めしません。あなたが終わるのは、たくさんの枝とたくさんの合併です。それぞれの変更を個別にテストして承認した後、後で相互に干渉することがわかります。

関連する問題