16

SVNの本には次のように記載されています。

再統合マージを実行したら、それを開発に使用し続けるべきではありません。これは、後で既存のブランチをトランクから再同期しようとすると、マージ トラッキングは再統合を、まだブランチにマージされていないトランクの変更として認識し、ブランチからトランクへのマージを試みるためです。ブランチにマージしてください!これに対する解決策は、トランクから新しいブランチを作成して、開発の次のフェーズを続行することです。

私の場合、トランクへの再統合後もブランチを使用し続け、トランクへの再統合を複数回続けたいと考えています。私はこれを行いましたが、2 つの主な問題に遭遇しました。

  1. 再統合しようとすると、奇妙なツリーの競合が発生し続けます。
  2. 「Reintegrate は、リビジョン 280 から 325 が以前に使用されていた場合にのみ使用できます」のようなメッセージが表示され続けます。

ブランチから複数回再統合できるようにしたい場合、この問題を回避するにはどうすればよいですか?

4

2 に答える 2

19

--record-only マージ オプションは、SVN ブックの「再統合されたブランチを維持する」セクションで説明されているように使用できます。

Subversion 1.8 以降では、自動再統合マージが導入されたため、これは不要になったことに注意してください。

于 2012-04-15T14:50:30.680 に答える
2

Googleでいくつかの回避策を見てきましたが、それらは「ハック」として私を緊張させました。これに対処するために、私はメッセージでSubversionが示唆していることを実行することにしました。私は自分のブランチに戻り、指定されたリビジョンを明示的にマージしました。

~/python/orb $ svn merge -r 650:693 https://paulwhippconsulting.slsapp.com/source/orb/trunk
~/python/orb $ svn commit -m 'merged revisions 650:693 from trunk'
Sending        occl

Committed revision 695.

これを行うと、トランクの作業コピーに戻り、問題なくブランチを再統合することができました。

これがお役に立てば幸いです

于 2012-11-16T03:17:26.423 に答える