1

機能ブランチ スキームで svn を使用しています。トランクをブランチにマージしようとするたびに、「ローカル削除、マージ時に着信削除」という問題が発生しました。私には意味がありません。エラーを再現するために私がしたこと: 1) 「svn copy ^/blabla/trunk ^/blabla/branches/test-merge」でブランチを作成する 2) 新しいファイルをトランクに追加する「touch tc ; svn add tc ; svn commit」 " 3) トランクからブランチへのマージ "svn merge ^/blabla/trunk ^/blabla/branches/test-merge" 出力は次のとおりです。

--- Merging differences between repository URLs into '.':
 C t.c
Summary of conflicts:
 Tree conflicts: 1

バージョン「1.6.17 (r1128011)」を使用しています

競合を手動で (svn accept を使用して) 解決しても役に立ちません。新しいファイルはブランチに表示されず、新しいマージでも同じ競合が発生します。

私は何を間違っていますか?

4

1 に答える 1

0

からの抽出svn help merge

4この形式は「2-URLマージ」と呼ばれます。

  svn merge SOURCE1[@N] SOURCE2[@M] [TARGET_WCPATH]

2つのソースURLが、2つのリビジョンNおよびMとともに指定されます。2つのソースが指定されたリビジョンで比較され、その差が別のブランチの作業コピーへのパスであるTARGET_WCPATHに適用されます。

マージする前にいくつかの準備手順をスキップし、いくつかの場所でWinスタイルのパスを使用し(ここではbashはありません、申し訳ありません)、ワークフローを少し変更します(ブランチは空になりません)

z:\>dir /B
svn
localws

z:\>dir localws /B /S
z:\localws\mtree
...
z:\localws\mtree\branches
z:\localws\mtree\trunk

z:\>svn ls -v -R file:///Z:/svn/mtree
      3 Badger                окт 13 21:30 ./
      3 Badger                окт 13 21:30 branches/
      2 Badger                окт 13 21:29 trunk/

(レポとWCは準備されていますが、まだ空です)


作成され、トランクにコミットされたファイル

z:\>dir /B z:\localws\mtree\trunk
1.txt
2.txt

z:\>svn ls -v -R file:///Z:/svn/mtree
      4 Badger                окт 13 21:48 ./
      3 Badger                окт 13 21:30 branches/
      4 Badger                окт 13 21:48 trunk/
      4 Badger              9 окт 13 21:48 trunk/1.txt
      4 Badger              9 окт 13 21:48 trunk/2.txt

ブランチ開始

Z:\localws\mtree\trunk>svn copy file:///Z:/svn/mtree/trunk file:///Z:/svn/mtree/branches/test-reintegrate -m "Create test-reintegrate branch"

Committed revision 5.

試して

Z:\localws\mtree\trunk>svn ls -v -R file:///Z:/svn/mtree
      5 Badger                окт 13 22:17 ./
      5 Badger                окт 13 22:17 branches/
      5 Badger                окт 13 22:17 branches/test-reintegrate/
      4 Badger              9 окт 13 21:48 branches/test-reintegrate/1.txt
      4 Badger              9 окт 13 21:48 branches/test-reintegrate/2.txt
      4 Badger                окт 13 21:48 trunk/
      4 Badger              9 окт 13 21:48 trunk/1.txt
      4 Badger              9 окт 13 21:48 trunk/2.txt

svn upZ:\ localws\mtreeの後で更新されたWCを取得します

Z:\localws\mtree>dir /B /S
Z:\localws\mtree\branches
Z:\localws\mtree\trunk
...
Z:\localws\mtree\branches\test-reintegrate\2.txt
Z:\localws\mtree\branches\test-reintegrate\1.txt
Z:\localws\mtree\trunk\1.txt
Z:\localws\mtree\trunk\2.txt

トランクに新しいファイルを追加し、ブランチでファイルを編集しました

Z:\localws\mtree>svn log -v -r6:7
------------------------------------------------------------------------
r6 | Badger | 2012-10-13 22:28:04 +0600 (Сб, 13 окт 2012) | 1 line
Changed paths:
   A /mtree/trunk/3.txt

Added new file to trunk
------------------------------------------------------------------------
r7 | Badger | 2012-10-13 22:29:20 +0600 (Сб, 13 окт 2012) | 1 line
Changed paths:
   M /mtree/branches/test-reintegrate/2.txt

Some changes
------------------------------------------------------------------------

サーバー側のビュー

Z:\localws\mtree>svn ls -v -R file:///Z:/svn/mtree
      7 Badger                окт 13 22:29 ./
      7 Badger                окт 13 22:29 branches/
      7 Badger                окт 13 22:29 branches/test-reintegrate/
      4 Badger              9 окт 13 21:48 branches/test-reintegrate/1.txt
      7 Badger             17 окт 13 22:29 branches/test-reintegrate/2.txt
      6 Badger                окт 13 22:28 trunk/
      4 Badger              9 окт 13 21:48 trunk/1.txt
      4 Badger              9 окт 13 21:48 trunk/2.txt
      6 Badger              9 окт 13 22:28 trunk/3.txt

ブランチをトランクと同期-トランクからテストへの変更をマージ-再統合

Z:\localws\mtree>cd branches

Z:\localws\mtree\branches>cd test-reintegrate
Z:\localws\mtree\branches\test-reintegrate>svn merge file:///Z:/svn/mtree/trunk
--- Merging r5 through r7 into '.':
A    3.txt
--- Recording mergeinfo for merge of r5 through r7 into '.':
 U   .

WCの状態を確認する

Z:\localws\mtree\branches\test-reintegrate>dir /B
2.txt
1.txt
3.txt

結果をコミットします

Z:\localws\mtree\branches\test-reintegrate>svn commit -m "Sync of test-reintegrate"
Sending        .
Adding         3.txt

Committed revision 8.

サーバ側

Z:\>svn ls -v file:///Z:/svn/mtree/branches/test-reintegrate
      8 Badger                окт 13 22:47 ./
      4 Badger              9 окт 13 21:48 1.txt
      7 Badger             17 окт 13 22:29 2.txt
      8 Badger              9 окт 13 22:47 3.txt

履歴書

あなたのスタイルと比較した私の変更(そして「winwsfail」の結果)

  • ^省略形のないフルパス(svn copyステージでもエラーが発生しました。AFAIK^推奨され、一般的なWCを組み合わせていない「WCのルートのブランチ」スタイルの場合に使用できます/しかし、間違っている可能性があります/)

  • 従来の形式のマージを使用する(単一URL)

HTH

于 2012-10-13T16:52:46.640 に答える