13

TortoiseSVN とのマージ後、競合解決の実行に問題があります。

データを BeyondCompare に送信し、その 3 方向マージ機能を使用しようとしています。残念ながら、BeyondCompare が期待するものとは異なる順序でファイルを送信するため、マージがすべて間違ってしまいます。

Explorer で右クリックして TortoiseSVN -> Settings と言うと、External Programs -> Merge Tool の下で BeyondCompare へのパスを指定できますが、引数については何もありません。BeyondCompare に正しく表示されるように、外部マージ ツールに送信される引数を並べ替えるにはどうすればよいですか?

4

3 に答える 3

15

BComp.exeこのダイアログで、TortoiseSVN によって外部マージ アプリケーション (この場合は ) に送信されるパラメータを制御できますTortoiseSVN->Settings->Merge Tools

双方向マージと 3 方向マージの両方で BeyondCompare を使用する例は、BC サポート ドキュメントにあります。

3-way Merge (v3 Pro)

1.    Select Settings from Explorer's TortoisSVN submenu.
2.    Switch to the Merge Tool tab.
3.    Change the radio buttons from TortoiseMerge to External.
4.    In the path edits, enter:
5.    "C:\Program Files\Beyond Compare 3\BComp.exe" %mine %theirs %base %merged /title1=%yname /title2=%tname /title3=%bname /title4=%mname 

2-way Merge (v3 Std, v2)

Use the same steps as above, but use the command line:

`"C:\Program Files\Beyond Compare 3\BComp.exe" %mine %theirs /savetarget=%merged`

これは、Tortoise SVN docsのセクションで説明4.30.5.2されています (サブトピックへのリンクはありません - ページで を検索してくださいMerge Tool)。

パラメータ置換は、Diff プログラムと同じ方法で使用されます。

%base - 自分や他の人が変更していない元のファイル

%bname- ベースファイルのウィンドウタイトル

%mine- 自分の変更を加えた独自のファイル

%yname- ファイルのウィンドウ タイトル

%theirs- リポジトリにあるそのままのファイル

%tname- リポジトリ内のファイルのウィンドウ タイトル

%merged- 競合するファイル、マージ操作の結果

%mname- マージされたファイルのウィンドウ タイトル

たとえば、Perforce Merge では次のようになります。

C:\Path-To\P4Merge.exe %base %theirs %mine %merged

またはKDiff3で:

C:\Path-To\kdiff3.exe %base %mine %theirs -o %merged --L1 %bname --L2 %yname --L3 %tname

または Araxis の場合:

C:\Path-To\compare.exe /max /wait /3 /title1:%tname /title2:%bname /title3:%yname %theirs %base %mine %merged /a2

または WinMerge (2.8 以降): C:\Path-To\WinMerge.exe %merged

于 2012-06-22T00:35:29.967 に答える
1

パラメータの説明は役に立ちますが、間違っているため、上記の答えはうまくいきません(少なくとも私たちにとっては)

私たちにとって正しい順序は次のとおりです。 [Path]\BCompare.exe %base %mine %theirs %merged

ここでのトリックは、%theirs と %merged を交換することです。Beyond Compare はそれらを間違って配置します。ヒントとして、ローカル ファイルは常に右側のサイトに表示する必要があります。左は revBase で中央は revHEAD でなければなりません。

于 2013-11-05T10:07:48.677 に答える