EclipseでSubclipse 1.6xプラグインを使用しています。シナリオを最初に説明しましょう:Subclipseマージ問題 - マージ結果と一致しないドライラン
私はリビジョンr1〜r100のプロジェクトのトランクを持っています。 リビジョンr100でブランチを作成し、r101からr105までコミットを開始しました。 この時点で、私は私の支店が更新されるようにトランクから変更を導入すると思った。
しかし、合併の間違いのために、私はトランクから私の支店にr80をマージしてリビジョンr106としてコミットしました。だから私はブランチでr106の私の変更を元に戻し、このブランチに別のコミットr107をします。
この間、トランクにはr108とr109というコミットがあります。 r106で私の悪いコミットを元に戻した後、私はブランチからr109までのすべての変更を私のブランチに(マージすることによって)正しく取り込み、私のブランチが最新であるようにし、ブランチをr110としてコミットします。
すべてが良好です。今私はブランチが必要ないと決めたので、ブランチ(r110)のすべての変更をトランクにマージさせてください。ですから、このマージの後、私のブランチがトランクで最新であるように、私がブランチで行った変更(そのブランチのリビジョンr 101以降)が表示されます。
私はチームを作成します - "Merge with From url"と "To url to my branch path"を行います。 Fromリビジョンはトランク(r109)の最後にマージされたリビジョンであり、使用されたリビジョンは私のブランチ(r110)の最新リビジョンです。私はDry Runを試して、MergeウィンドウでUnified Diffファイルオプションを作成しました。両方とも正しく見え、唯一更新されたファイルはブランチで変更したものです。
私はマージを実行し、マージ結果はドライランとは異なります。最初に、それはDry Run(私が期待していたもの)によって示されたファイルを正しくマージします。しかしそれはそこで止まらない。 R80を通じて逆マージR110 --- :(???ためのブランチでの私の間違ったマージのものであってもよい)R110経由R80をマージ---
を 、その後のようなものを行います。それは、このような何かをしようとします。
最終結果は、ドライランの結果と他のファイルの多くの更新/変更(私が推測するように、2回目のマージとリバースマージのため)と全く同じようにマージされました。
なぜこれが起こっているのか、そしてドライランの結果とマージ結果を正確に一致させる方法についての考えはありますか?作成されたUnified diffファイルでさえ正しいです。
長い投稿を読んでいただきありがとうございます。
コメントしていただきありがとうございました。また、私はCollabNetよりももっと親しみやすいSubclipseを見つけました。 YMMV – kriver