4

バージョン管理に使用svnしていますが、次の質問があります。

  • 私が自分の中で何かを開発し、feature branchから常に上流の変更を開発しているとしましょうtrunk (単純にそれらをマージして競合を解決することによって)。さて、ある時点で、最後のアップストリーム マージを作成しtrunk、競合を解決しました。そして、たとえば、その直後mergeに何とか「フリーズ」することができましたtrunk-すべてのコミットtrunkが拒否され、常に同じ状態のままです。

  • これにより、 を実行するときに競合が発生しないことが保証されmerge --reintegrateますfeature branchか? または、それらにつながる可能性のある他の条件やアクションが欠落していますか?

4

2 に答える 2

4

どのようにトランクをフリーズする予定ですか?

最初にトランクをフリーズしてから、トランクからブランチへのマージを行うと、最後のマージ以降、誰もトランクに触れていないことが保証されます。

次の場合、マージの競合は発生しません。

  • ブランチからトランクにマージしたときにすべてのマージ競合が処理されているはずなので、マージをチェリー ピックしません。これは、マージのチェリー ピッキングを行わなかった場合です。
  • 常に同じルート ディレクトリからマージを行いました。

ただし、これが必ずしも正しいとは限らない奇妙なエッジケースでは可能です。再統合の競合を強制できるかどうかを確認するために、2 つの機能ブランチを試してみましたが、できませんでした。

于 2012-06-04T19:14:15.510 に答える
0

この動作は見られません。マージ --reintegrate で競合を生成できます。これは svn 1.6.18 のもので、ここに機能の依存関係があるかどうかはわかりません。特に、ブランチでの競合が手動で解決する必要がある場合 (つまり、 --accept mine-* または --accept theirs-* は機能しません)、Subversion がマージでの競合を回避する方法がわかりません--競合をどのように解決したかを実際に「伝える」ことができず、競合している行はトランク上で変更されていないため、再統合します。

私は実際に関連する質問の解決策を探しています-トランクに再マージするときに手動で解決する方法を「覚えている」ので、ユーザーは同じ競合解決を2回行う必要はありません(同じ思考プロセス)-しかしここで議論がなければ、私はその質問を別にします。

于 2013-08-16T00:09:44.583 に答える