web-dev-qa-db-ja.com

Subversionでトランクにブランチをマージ

Subversion 1.4.6を使用していますが、現在バージョン1.5にアップグレードできません。

状況:

  1. トランクには、多くの構造的な変更があります(つまり、ほとんどの場合ファイルの移動)。

  2. トランクから最近マージされたブランチがありますが、大きな変更の前です。

トランクをブランチにマージする最良の方法は何ですか?

私が念頭に置いていたもの:

  1. 最初に、ブランチ内の変更されたファイルのみをトランクにマージすることにより、ブランチをトランクに慎重にマージします。

  2. トランクをブランチにコピーします。ブランチの履歴を失うことなくこれを行う最良の方法は何ですか?ブランチを廃止し、新しいブランチを作成する必要がありますか?


さて、SVNに十分なクレジットを与えていないようです。結局のところ、十分にスマートです。 「D」と「A」の出力に先送りされましたが、バックグラウンドで動きをしました。

75
Gilad Naor

最後のマージ以降にトランク上のすべてのリビジョンをマージすることを妨げる何かがありますか?

svn merge -rLastRevisionMergedFromTrunkToBranch:HEAD url/of/trunk path/to/branch/wc

うまく動作するはずです。少なくとも、トランク上のすべての変更をブランチにマージする場合。

87
Stefan

トランクからブランチにマージされた最後のリビジョンは、作業コピーディレクトリ内で次のコマンドを実行して見つけることができます。

svn log -v --stop-on-copy
16
Anonymous

マージしたいリビジョンの範囲を指定する「昔ながらの」方法です。 1.5以降では、次を使用できます。

svn merge HEAD url/of/trunk path/to/branch/wc
11
Markku