0

リビジョンをトランクからブランチにマージしながら、次のことを達成しようとしています:

リビジョン 1 (これはブランチ バージョンでもあります):

First Line

リビジョン 2:

First Line
Second Line

リビジョン 3:

First Line
Second Line
Third Line

ブランチで次のコマンドを実行します。

svn merge -c 3 [trunkurl]

次の結果が得られることを期待しています

First Line
Third Line

しかし、代わりにツリーの競合が発生しています。この手法は、ファイルの末尾ではなく、ファイルの途中に新しい行を追加する場合にうまく機能するようです。

4

1 に答える 1

0

あなたは悪くて間違った期待をしていましたが、Subversion (ツリーの競合なし、ファイルの競合のみ/ツリーの競合はここでは不可能です/) は正しいエラーを発生させました

Subversion がマージするとき、/ある程度、実際のマージ アルゴリズムはもっと複雑です/影響を受けるリビジョンのソース ツリーから差分 (統合、デフォルト コンテキスト = 3、AFAIR) をターゲットに適用しようとします。HEAD の diff を見ようとすると、

Index: file.txt
===================================================================
--- file.txt    (revision 4)
+++ file.txt    (revision 5)
@@ -1,2 +1,3 @@
 First Line
 Second Line
+Third Line

ただし、このコンテキストはブランチには存在しないため、デフォルト設定の通常の設定でもpatchこの差分は拒否されます

于 2013-02-22T21:29:51.903 に答える