web-dev-qa-db-ja.com

ブランチとトランクをマージ

TortoiseSVNを使用して、ブランチで行った変更をトランクにマージする必要があります。

私はこのプロジェクトの唯一の開発者であるため、トランクは変更されていません。最終的に私のチームが使用できるように、私はSVNを学んでいます。

基本的に、トランクをブランチのように見せたいです。

Svnより前の世界では、ブランチフォルダーのファイルをコピーし、トランクフォルダーのファイルを削除してから、ブランチをトランクにコピーします。

TortoiseSVNでは、Reintegrate a branchMerge a range of revisions、およびMerge two different trees。実際にトランクを変更するものはないようです。また、トランクの上で分岐を試みました。これにより、トランクが既に存在するというエラーが表示されます。

119
Brian Bolton

あなたの場合:

  1. 作業コピーをトランクに切り替えます(SVNスイッチ)
  2. ブランチを作業コピーにマージします(SVN Merge)
  3. すべてがコンパイルされて動作することを確認してください
  4. 作業コピー(トランク)をコミットします
  5. ブランチを殺すことを検討してください

チーム環境では、まずブランチのトランクから最新の変更をマージし、すべてがコンパイルおよび動作することを確認してから、上記の手順を実行することをお勧めします(これは簡単なことです既に変更をテストしています)。


更新

ステップ5では、ブランチを強制終了することに言及しています。これは、機能からのブランチがトランクに入れられると、トランクの一部と見なされるためです。その場合、誰も作業を続けないようにブランチを削除する必要があります。その機能に大きな変更が必要な場合は、そのための新しいブランチを作成する必要があります。

特定のリリースがサポートされなくなった場合を除き、私が削除しないブランチは、メンテナンスブランチとリリースブランチのみです。

どのような場合でも、常にすべてのリビジョンにアクセスできるため、ブランチを削除することは、他の開発者がデッドブランチで開発するのを防ぐためだけに使用されます。

156
mbillard

TortoiseSVN 1.8.5、Mergeで| 2つの異なるツリーをマージする必要があります。ブランチ/タグをトランクにマージして戻すと、トリックはFrom URLがトランクで、Toがタグ/ブランチになることです。奇妙だが真実。

ソース: Merging

作業コピーではなく、タグ/ブランチにあるディレクトリの場合、競合エラーが発生する場合があります。競合を受け入れて、マージをやり直してください。

10
Kevin Johnsrude

まず、作業コピーをトランクに切り替えます。次に、ブランチからトランクまで、マージ範囲のリビジョンを実行します。このダイアログが完了すると、差分はトランクの作業コピーの変更が保留されます。作業コピーに手動で変更を加えたかのように、それらをコミットする必要があります。

私の使用法では、トランクの実行を維持し、ビルド時にブランチをスピンオフするのがより一般的です。したがって、私がする必要のある唯一のマージは、トランクからバグ修正を取得し、それを最新のビルドブランチに配置して、そのブランチを再リリースすることです。私がこれを行う最も簡単な方法は、あなたが発見したように、せいぜい不器用だからです。最新のブランチとトランクを自分のマシンにチェックアウトし、トランクからブランチにファイルを文字通りコピーして両方をチェックインすることです。

6
DevelopingChris

TortoiseSVN 1.9.3、ビルド27038を使用しています。

ブランチをトランクにマージするには、以下の手順に従います。

1)トランク作業コピーを右クリックして、以下のオプションを選択します。

enter image description here

2)トランクへのブランチマージの場合、以下に示すようにオプション2番目を選択し、次へをクリック

enter image description here

3)[From:]フィールドに、トランクの完全なフォルダーURLを入力します。これは間違っているように聞こえるかもしれませんが、トランクがブランチの変更を追加する開始点であることを忘れないでください。 [To:]フィールドに、機能ブランチの完全なフォルダーURLを入力します。

enter image description here

4)[次へ]をクリックして、テストマージを実行します

enter image description here

5)テストマージが成功したら、[マージ]ボタンをクリックします。

6)マージが成功したら、トランクで変更をコミットします。

3
Waqas Ahmed