5

ちょうど今、別の質問に対する提案があり、機能ブランチをトランクの作業コピー ディレクトリにあるトランクの作業コピーにマージしようとしています。いくつかの競合があるため、それらを解決するために KDiff3 を使用しています。しかし、ここでの Base、Mine、Their の意味がわかりません。私の場合(ブランチをトランクにマージ):

私の --- トランクの作業コピー、

ベース - - ???

彼らの - - ???

もう 1 つの基本的な質問: 競合を解決して保存すると、編集されたバージョンがトランクのローカル作業コピーに保存されます。私の理解は正しいですか?

実際、ここで提示されているのと同じ簡単な質問を避けるために、しばらくグーグルで検索しました。ただし、これらのダミーの質問に関する簡単な説明は見つかりません。

4

1 に答える 1

19

Base、Mine、Theirs は、3 者間差分の 3 つの名前にすぎません。それらの任意のフィールド(base、mine、theirs)で任意のコピーを使用できます。しかし、次のようにするのは理にかなっています。

  • ベース: チェックアウトのリポジトリ バージョン
  • 私のもの: 作業コピーの編集
  • 彼ら:矛盾するバージョン

つまり、チェックアウトしたバージョンが作業ディレクトリにあるということです。あなたはそれを変更しました。コミットする前に、他の人が行った編集をあなたの作業コピーにマージする必要があります。したがって、オリジナル(ベース) と編集(Mine)と競合する編集(Theirs) を確認するために 3 方向の差分を実行します。それを調べて、作業コピーのバージョンにマージします。

完了したら、それをテストし (コンパイルするか、テストする必要があるものは何でも)、コミットします。

kdiff3 ドキュメントの three-way-diff: http://kdiff3.sourceforge.net/doc/documentation.html#id2488370

そしてsvn本の説明:http://svnbook.red-bean.com/en/1.1/ch03s05.html#svn-ch-3-sect-5.4

于 2011-01-05T12:31:43.910 に答える