機能ブランチをマージして戻す前に、常に機能ブランチを同期する場合。なぜあなたは本当に--reintegrate
オプションを使わなければならないのですか?
Subversionの本には次のように書かれています:
ただし、ブランチをトランクにマージする場合、基礎となる数学はまったく異なります。機能ブランチは、複製されたトランクの変更とプライベート ブランチの変更の両方の寄せ集めになっているため、コピーする単純な連続した範囲のリビジョンはありません。--reintegrate オプションを指定することにより、Subversion に、ブランチに固有の変更のみを慎重にレプリケートするように依頼します。(実際、最新のトランク ツリーと最新のブランチ ツリーを比較することでこれを行います。結果の違いは、まさにブランチの変更です!)
したがって、この--reintegrate
オプションは機能ブランチに固有の変更のみをマージします。しかし、マージの前に常に同期する場合 (機能ブランチでの競合に対処するために推奨される方法です)、ブランチ間の変更は機能ブランチに固有の変更のみですよね? また、Subversion がターゲット ブランチに既にあるコードをマージしようとしても、何もしませんよね?
ブログ投稿で、Mark Phippard は次のように書いています。
これらの同期されたリビジョンを含めると、トランクに既に存在する変更をマージして戻します。これにより、不必要で紛らわしい競合が発生します。
reintegrate を削除すると不必要な競合が発生する例はありますか?