競合するバージョンのマージに使用するツールを 1 つ以上指定できます。 競合が発生したときは、ローカル バージョンまたはサーバー バージョンを使用できます。 変更がファイルの同じ行に対して行われたのでない場合は、自動マージ コマンドを使用して競合を解決できます。 外部マージ ツールを構成してある場合は、外部ツールを使用してマージできます。
ファイル間の競合解決の詳細については、「2 つのファイル間の競合の解消 (Team Explorer Everywhere)」を参照してください。
このトピックの内容
サポートされているツール
外部ツールの構成
サポートされていないマージ ツール
必要なアクセス許可
この手順を実行するには、Team Explorer Everywhere がインストールされているコンピューターの Administrators または Users セキュリティ グループのメンバーである必要があります。
サポートされているツール
Team Explorer Everywhere で使用するためには、外部ツールは次の条件を満たしている必要があります。
左の入力ファイル、右の入力ファイル、共通の先祖、およびマージ出力ファイルという 4 つの引数を指定できる必要があります。 ファイル名は完全パスとして指定する必要があります。
競合するファイルが正常にマージされてマージ結果が承認された場合は、ゼロを返す必要があります。
4 つの必須の引数に加えて、ツールで別の引数を受け取ることもできます。 たとえば、ラベルを受け取ることができます。 引数は構成で "トークン" として指定します。トークンは、外部マージ ツールが呼び出される前に、Team Explorer Everywhere によって置換されます。
外部マージ ツールの引数は空白で区切って指定します。空白を含む引数は引用符 ("") で囲みます。 引用符で囲まれた文字列の中に引用符を埋め込むには、2 つの引用符を使用します。 たとえば、次の引数を指定できます。
"This "" embeds a double quote"
トークンは、シェルに渡される前に、暗黙的に引用符で囲まれます。 したがって、% トークンを引用符で囲む必要はありません。
必須の引数
トークン |
説明 |
---|---|
%1 |
ファイルのサーバー バージョン (元のファイル) のパス |
%2 |
ファイルの変更後のバージョン (ローカル ファイル) のパス |
%3 |
これら 2 つのファイルのベースラインとなる共通の先祖 (共通ファイル) のパス |
%4 |
結果であるマージされたファイルのパス |
省略可能な引数
トークン |
説明 |
---|---|
%5 |
Diff コマンド ライン オプション ![]()
このトークンは使用されませんが、Visual Studio Team Foundation Server の Visual Studio クライアントとの互換性を維持するために残されています。
|
%6 |
サーバー ファイルのラベル |
%7 |
ローカル ファイルのラベル |
%8 |
ベースラインとなる共通の先祖ファイルのラベル |
%9 |
マージされたファイルのラベル |
外部ツールの構成
次の手順では、Eclipse 対応 Team Foundation Server プラグインで外部マージ ツールを構成する方法を説明します。 tf difference コマンドで使用する外部ツールを構成することもできます。 詳細については、「コマンド プロンプトから項目を比較するように外部ツールを構成する」を参照してください。
Eclipse 用の Team Foundation Server プラグインで外部マージ ツールを構成するには
[ウィンドウ] メニューの [ユーザー設定] をクリックします。
[ユーザー設定] ダイアログ ボックスが表示されます。
[チーム] ノードを展開し、[Team Foundation Server] ノードを展開して、[マージ ツール] をクリックします。
結果ペインに、構成されている外部マージ ツールの一覧が表示されます。 既定では、外部マージ ツールは構成されていません。
[追加] をクリックします。
[外部マージ ツールの追加] ダイアログ ボックスが表示されます。
[ファイルの種類] に、このマージ ツールが対象とするファイルの拡張子を指定します。
コンマで区切ることによって、複数の拡張子を指定できます。 また、ワイルドカード文字 (*) を指定すると、すべてのファイルに対してこのマージ ツールが使用されます。
[コマンド] に、使用するマージ ツールのコマンド ラインを指定します。
コマンド ラインには、マージ ツールのパスと、マージ ツールで使用する引数を含めます。 [参照] をクリックしてマージ ツールを指定することもできます。
たとえば、Java ファイル用に MyDiff ツールを指定するには、次のコマンド ラインを指定します。
C:\Program Files\MyDiff\mydiff.exe %3 %2 %1 –o %4
MyDiff では各ファイルのラベルを指定することもできます。 ラベルを指定しないと、MyDiff は一時ファイルの名前を表示しますが、一時ファイルの名前は読みにくい名前です。
ラベルを指定するには、次のコマンド ラインを指定します。
C:\Program Files\MyDiff\mydiff.exe %3 %2 %1 –o %4 --L1 %8 --L2 %7 --L3 %6
この構文で、%8 はファイル %3 のラベルを指定し、%7 はファイル %2 のラベルを指定し、%6 はファイル %1 のラベルを指定します。
[OK] をクリックしてマージ ツールを追加します。
[OK] をクリックして、[ユーザー設定] ダイアログ ボックスを閉じます。
サポートされていないマージ ツール
マージ ツールが必要な条件を満たしていない場合でも、ラッパー スクリプトを作成することで、そのツールを Team Explorer Everywhere で使用できます。
たとえば、マージ ツール xxdiff は、いずれの使用条件も満たしていません。 このツールではマージ出力ファイルの完全パスを指定できず、出力が現在のディレクトリに書き込まれます。 また、このツールは、バージョンが同一である場合は 0 を返し、バージョンが異なる場合は 1 を、エラーが発生した場合は 2 を返します。 ラッパー スクリプトを作成して、マージ出力ファイルの書き込み先を現在のディレクトリに変更し、終了コードが 0 または 1 の場合は 0 を返すようにすることで、これらの問題を解決できます。
次の sh シェル スクリプトを使用すると、xxdiff を使用できるようになります。
#!/bin/sh
DIR=`dirname $4`
FILE=`basename $4`
cd $DIR && /usr/local/bin/xxdiff $1 $2 $3 -M $FILE
if [ $? = 0 -o $? = 1 ]; then
exit 0
fi
exit $?
このシェル スクリプトを保存し、実行可能にした後、Team Explorer Everywhere を構成して、xxdiff を外部マージ ツールとして使用できます。 作成したシェル スクリプトのパスを [コマンド] に指定し、引数を次の文字列に設定します。
%1 %2 %3 %4