6

Subversion のマージ情報がどのように使用されているか、マージ情報が正しくない場合にどのような問題が発生する可能性があるかについて、少し興味がありますか?

たとえば、私はbranch1branch2から分岐しましたtrunk。また、subbranch1と にsubbranch2由来する がありbranch1ます。で開発を行ったbranch2後、 を使用してトランクに再統合したとしsvn merge --reintegrate ^/branch2ます。subbranch1次に、これらの変更をにも追加し ( からプルtrunk)、コマンドを誤って使用したかったsvn merge --reintegrate ^/trunk(したがって、 の直接の祖先ではない--reintegrateにもかかわらず、ここでもマージ コマンドにフラグを追加します)。subbranch1trunk

これにより、将来どのような問題が発生する可能性がありますか?

4

2 に答える 2

3

マージ情報は、次の情報を追跡します。

  • ブランチ間の関係 (subbranch1から発生したbranch1、 から発生しtrunkた など)
  • すでにマージされているリビジョン

マージ情報が欠落しているか正しくない場合は、マージを手動で追跡する必要があり、これによりエラーが発生しやすくなります。マージ情報を使用することで、Subversion にこのすべての情報を追跡させます。

于 2012-03-23T07:33:08.983 に答える
2

この回答は非推奨です。Subversion >= 1.6 を使用してください。


分岐アプローチは一般的に危険ですが、事故のせいでさらに悪化しています。

すべてのブランチを再組み込みすると、多くの問題が発生します。

  • branch2 による変更は、subversion に対する削除のように見える場合があります。
  • あなたが行った削除は、subversion への追加のように見えるかもしれません。
  • 3 者間比較では、奇妙な結果が得られる場合があります (たとえば、同じコードをファイルに 2 回挿入するなど)。

3 者間比較はもう信頼できません。変更ごとに手動でチェックする必要があります。

詳細については、母親が svn の分岐とマージについて決して言わなかったことを参照してください。

PS私はこのようなものを一度修正しなければなりませんでした。それ以来、バニーホッピングを使用しています (リンクを参照)。

于 2012-03-23T07:36:04.130 に答える