次の方法で共有


ファイルの種類とマージ ツールの関連付け (Team Explorer Everywhere)

競合するバージョンのマージに使用するツールを 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 プラグインで外部マージ ツールを構成するには

  1. [ウィンドウ] メニューの [ユーザー設定] をクリックします。

    [ユーザー設定] ダイアログ ボックスが表示されます。

  2. [チーム] ノードを展開し、[Team Foundation Server] ノードを展開して、[マージ ツール] をクリックします。

    結果ペインに、構成されている外部マージ ツールの一覧が表示されます。 既定では、外部マージ ツールは構成されていません。

  3. [追加] をクリックします。

    [外部マージ ツールの追加] ダイアログ ボックスが表示されます。

  4. [ファイルの種類] に、このマージ ツールが対象とするファイルの拡張子を指定します。

    コンマで区切ることによって、複数の拡張子を指定できます。 また、ワイルドカード文字 (*) を指定すると、すべてのファイルに対してこのマージ ツールが使用されます。

  5. [コマンド] に、使用するマージ ツールのコマンド ラインを指定します。

    コマンド ラインには、マージ ツールのパスと、マージ ツールで使用する引数を含めます。 [参照] をクリックしてマージ ツールを指定することもできます。

    たとえば、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 のラベルを指定します。

  6. [OK] をクリックしてマージ ツールを追加します。

  7. [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

参照

その他の技術情報

分岐とマージ (Team Explorer Everywhere)

ファイルおよびフォルダーのマージ (Team Explorer Everywhere)