SVN マージで一部のリビジョンがマージされない 質問する

SVN マージで一部のリビジョンがマージされない 質問する

私たちは Subversion と TortoiseSVN を使用しています。開発にはトランクを使用し、安定したリリースを表すためにブランチを使用しています。ブランチで行われた変更 (バグ修正) は、その後トランクにマージされます。私たちは Subversion の専門家ではありませんが、一般的にはこれでうまくいきます。

最近、ブランチからトランクに一連の変更をマージしていたのですが、マージしても何も起こらないリビジョンが 1 つありました。

Command    Merging revisions 7233-7234 of .../branches/RB-7.2.0 into C:\Core, respecting ancestry
           C:\Core  
Finished!   

ブランチ リビジョンには明らかに変更が関連付けられており、関係するファイルは新しいものではなく、変更はトランクの作業コピーには表示されないため、なぜ機能しないのかわかりません。このように動作するブランチ リビジョンが連続していくつかあり (複数の異なるファイルを含む)、その後のブランチ リビジョンは正常に動作するようです。

マージを記録のみとしてマークすることで、リビジョンのマージをブロックできることはわかっています (リビジョンは、実際にはマージされていないのに、マージ済みとしてマークされます)。したがって、考えられる唯一のことは、これらのリビジョンが何らかの理由でブロックされているということです。トランクでは、マージする必要があるファイルの mergeinfo プロパティには何も表示されていないようです。また、その親フォルダーのいずれにも何も表示されていません。ただし、その情報が表示されるかどうか、またその場所がわかりません。また、マージ ダイアログの [ログを表示] ダイアログには、[マージされたリビジョンを含める] が選択されているかどうかに関係なく、すでに正常にマージしたリビジョンを含むすべてのリビジョンが表示されているようです。

私の質問は次のとおりです。

  • この改訂がブロックされているという理論を確認する方法はありますか?
  • リビジョンがブロックされている場合、ブロックを解除する方法はありますか?
  • ブロックされていない場合は、他に何を確認すればよいでしょうか?

更新: 問題がリビジョンのブロックとは関係がないことを確認した後、tortoise ではなくコマンド ラインから再度マージを試みました。マージは実行されました (やった!) が、今見てみると、変更されたファイルのいずれに対しても mergeinfo が更新されておらず、mergeinfo がすでにある 6 つの無関係なファイルに対してのみ更新されていることに気付きました。これについて心配する必要があるかどうかはわかりません。tortoise が機能しない理由はまだわかりませんが、少なくとも作業は完了できます。

ベストアンサー1

Tortoise がマージを行う際、リビジョン ボックスを空のままにしておくと、マージするリビジョンを決定するためにのみ mergeinfo プロパティが使用されます。したがって、リビジョンを「ブロック解除」し、そのリビジョンを明示的にマージするだけです。Tortoise は、ログに既にマージされたリビジョンをリストしません。

Tortoise は mergeinfo にマージを再度記録する可能性があるため、後でディレクトリの svn プロパティを調べて、それが実行されるかどうかを確認してください (余分なエントリを編集します。サーバーがこれを実行すると思いますが、手動で実行する方が簡単な場合もあります)。

別の方法としては、mergeinfo プロパティを見て、このリビジョンがすでにリストされているかどうかを確認し、リストされている場合は削除してコミットします。その後、マージを繰り返すと、期待どおりに動作するはずです。

宛先には通常、マージ情報がありますが、あなたの場合、ブランチにもマージをブロックしているものがあるのではないかと思います。その場合はお知らせください。実際に何が起こっているのか知りたいです。

おすすめ記事