3

これで、ブランチで作業を実行します。これらはトランクにマージされ、それらの機能が完了すると強制終了されます。したがって、トランクには常に最新の安定したコードが含まれています。

トランクのリリース準備が整うと、その時点でトランクからタグが作成されます。では、以前のリリース用のパッチを作成する必要がある状況をどのように処理するのが最善でしょうか?

そのリリースを示すタグがあります。しかし、トランクにはさらに多くの新機能が含まれるようになりました。古いタグからブランチを作成する場合、どうすればパッチの修正をクリーンにトランクに取り込み、新しいパッチ リリースを新しいタグでマークすることができるでしょうか?

最初のリリース タグから作成されたブランチタグを付けて、ブランチトランク再統合マージできますか? それとも問題になるのでしょうか?Subversion を混乱させる可能性があると思います。

この「図」は、流れを説明しようとしています。

Work branches /-- itter. 1.0 --\      /- 2.0 -\           /------ 3.0 ----------\
             /                  \    /         \         /                   /   \
    ------------trunk----------------------------------------------------------------------  
                                  |                | v2.0 tag              /      | v3.0 tag  
                                  |                                       /
                                  | V1.0 tag----------\                  /
                                                       \-- Branch 1.1 --/
                                                                        |
                                                                        | V1.1 tag

ここではタグとブランチが同じ行にありますが、実際には標準のトランク、ブランチ、タグフォルダ レイアウトにあることに注意してください。

注: 作業ブランチは、特定のリリースと関係がある必要はありません。1.0 などの名前を付けましたが、 foobarなどの名前にすることができます。

4

2 に答える 2

2

より一般的な方法は、リリース ブランチ (1.x、2.x、...) を開いたままにして、そこから特定のリリースにタグを付けることです。

そのバージョンのサポートを停止する場合にのみ、ブランチを閉じてください。

        1.0     1.1         2.0     2.1         (release tags)
       /       /           /       /
   /----------- 1.x       /----------- 2.x      (release branches)
  /                      / 
----------------------------------------------- trunk

このようなリリース ブランチからトランクへの修正のマージは、このブランチがどこから分岐したか (トランク、タグ、または他のブランチ) に関係なく安全です。

于 2012-04-26T15:41:16.510 に答える
1

現在、トランクからリリースにタグを付け、パッチがしばらく必要な場合はそのタグからブランチを作成するというアプローチを使用しており、単一チームと複数チームの両方でうまく機能しています。

于 2012-08-10T07:26:38.650 に答える