Tortoise 1.6 で SVN ブランチを使用しています。定期的にトランクをブランチにマージして、最新の状態に保っています。
今日、ブランチを再統合しようと思いました。Tortoise から「ブランチの再統合」を選択すると、次のエラー メッセージが表示されました。
再統合は、リビジョン4709から5019が以前に再統合ソースにマージされている場合にのみ使用できますhttp://subversion/svn/saxdev/trunk
が、これは当てはまりません。
次に、次のような説明が付いた約 50 個のファイルがリストされました。
Error: branches/qst/kobalt/sax/businessobjects/util/HistoryParent.java
Error: Missing ranges: /trunk/kobalt/sax/businessobjects/util/HistoryParent.java:4709-5018
リビジョン 5019 はヘッド リビジョンです。リビジョン 4737 はブランチを作成したときのリビジョンです。
これはリビジョン4737のログから取得したものです
アクション: パスを追加しました: /branches/qst パスからコピーしました: /trunk
私にとって、そのエラー メッセージは、ブランチが元々トランクからのものではないことを示しているように見えますが、それは真実ではありません。
何か案は?
ベストアンサー1
ブランチで作業していて、他の人の作業に合わせて最新の状態に保っている場合、トランクの作業コピーを作成してブランチを再統合しようとすると、次のようなメッセージが表示されて困惑するかもしれません。
$ svn merge --reintegrate https://server.blah/source/orb/branches/bronze_services
svn: Reintegrate can only be used if revisions 650 through 694 were previously merged from
https://server.blah/source/orb/trunk to the reintegrate source, but this is not the
case:
branches/bronze_services/occl
Missing ranges: /trunk/occl:650-693
Google でいくつかの回避策を見ましたが、それらは「ハック」のように私には不安でした。それに対処するために、私は Subversion がメッセージで示唆していることを実行することにしました。ブランチに戻り、指定されたリビジョンを明示的にマージしました。
$ svn merge -r 650:693 https://server.blah/source/orb/trunk
$ svn commit -m 'merged revisions 650:693 from trunk'
Sending occl
Committed revision 695.
これを実行すると、トランクの作業コピーに戻り、問題なくブランチを再統合することができました。