Difference コマンド

2 つのファイル、2 つのフォルダーの中にあるファイル、またはシェルブセットとローカル ファイルまたはサーバー ファイルを比較し、可能であれば差異を表示します。

必要なアクセス許可

difference コマンドを使用するには、指定されたすべての項目の [読み取り] のアクセス許可が [許可] に設定されている必要があります。 詳細については、「Team Foundation Server のアクセス許可」を参照してください。

tf diff[erence] itemspec [/version:versionspec] [/type:filetype] 
[/format:format [/ignorespace] [/ignoreeol] [/ignorecase] [/recursive] 
[/options][/noprompt][/login:username,[password]]

tf diff[erence] itemspec itemspec2 [/type:filetype] [/format: format] 
[/ignorespace] [/ignoreeol] [/ignorecase] [/recursive] [/options] [/noprompt][/login:username,[password]]

tf diff[erence] [/shelveset:shelvesetname[;shelvesetowner]] 
shelveset_itemspec [/type:filetype] 
[/format: format] [/ignorespace] [/ignoreeol] [/ignorecase] 
[/recursive] [/options] [/noprompt][/login:username,[password]]

tf diff[erence] /configure

パラメーター

引数

説明

itemspec

必須。 比較する項目を指定します。 バージョンまたはパスが指定されなかった場合、現在のワークスペースのバージョンであると仮定されます。 ローカル パスと Team Foundation バージョン管理サーバーのパスの両方を使用できます。

Team Foundation で itemspecs を解析してスコープ内にある項目を確認する方法の詳細については、「コマンド ライン構文 (バージョン管理)」を参照してください。

difference コマンドでは、ワイルドカード文字はサポートされません。

このパラメーターは、/shelveset オプションと組み合わせることはできません。

Itemspec2

省略可能です。 itemspec との比較対象とする項目です。 2 つ目の itemspec を指定しない場合、項目の Team Foundation バージョン管理サーバーの最新バージョンが使用されます。

Filetype

/type オプションに値を指定します。 "binary" または "text" と、コードページ番号またはコードページの表示名を指定できます。

Format

/format オプションと共に使用して、出力形式として次の種類のいずれかを指定します。

  • Visual

  • Brief

  • コンテキスト

  • RCS

  • SS

  • SS_SideBySide

  • SS_Unix

  • Unified

  • Unix

これらの出力形式については、このトピックの「解説」で説明します。

Versionspec

/version オプションにユーザーが指定した値。 Team Foundation でバージョン指定を解析してそのスコープ内にある項目を確認する方法の詳細については、「コマンド ライン構文 (バージョン管理)」を参照してください。

Shelvesetowner

シェルブセットの所有者をユーザー名により指定します。 このパラメーターの値を指定しない場合、現在のユーザーであると仮定されます。

Shelvesetname

シェルブセットの名前を指定します。 各シェルブセットを異なるユーザーが所有している場合は、Team Foundation Server を実行するサーバー上に同じ名前のシェルブセットを複数作成できます。

Shelveset_itemspec

基本シェルブセット バージョンと比較する、シェルブセット内のフォルダーまたはファイルの名前を指定します。

username

/login オプションに値を指定します。 ユーザー名の値は、DOMAIN\UserName または UserName のいずれかとして指定できます。

オプション

説明

/type

検出されたエンコーディングをオーバーライドし、指定されたエンコーディングを使用して相違点エンジンで表示します。

/version

比較するファイルまたはフォルダーのバージョンを指定します。 versionspec を指定しない場合、Team Foundation は、既定でワークスペースのバージョンを使用します。

/version フラグを使用する代わりに、各ファイル名の終わりにセミコロンとバージョン識別子を付加することにより、バージョンを指定できます。

/format

format 引数で指定された出力形式を指定します。

/ignorespace

比較対象ファイルの空白の相違点を強調表示しません。

/ignoreeol

2 つのファイルまたは 2 つのファイル バージョン間にある改行文字の相違点を無視します。 /ignoreeol の機能は、/ignoreSpace とは異なります。 /ignorespace では、8 つの空白は 1 つの空白と同一と見なされます。 一方、/ignoreeol オプションを使用した場合で、ファイル A の変更されていないテキスト領域の間に 2 つの改行文字があり、ファイル B には 1 つの改行文字がある場合、結果は相違点として表示されます。 どちらのファイルにも改行が 1 つしかないが、ファイル A では改行として \r\n が使用されており、ファイル B では \n が使用されている場合、/ignoreEOL オプションではこの相違点は無視されます。

/ignorecase

比較対象ファイルの大文字と小文字の相違点を強調表示しません。

/recursive

現在のフォルダーとそのすべてのサブフォルダーの間の違いを比較します。

/options

diff により呼び出されるツールのオプション文字列を指定します。 詳細については、「比較ツールを使用したファイルの種類の関連付け」および「ファイルの種類とマージ ツールの関連付け」を参照してください。

/shelveset

基となっている Team Foundation バージョン管理サーバーのバージョンと比較するシェルブセットを指定します。

このオプションは、itemspec 引数と組み合わせることはできません。 個々のシェルブセット項目を比較するには、shelveset_itemspec を指定します。

/noprompt

通常はこの操作の完了時に表示されるダイアログ ボックスを表示しません。

/configure

[ユーザー ツールの構成] ダイアログ ボックスを呼び出します。 このツールは、Visual Studio ユーザー インターフェイスから使用できます。 詳細については、「比較ツールを使用したファイルの種類の関連付け」を参照してください。

/login

Team Foundation Server でユーザーを認証するためのユーザー名とパスワードを指定します。

解説

注意

コマンド ラインで tf diff または tf difference と入力すると、このコマンドを実行できます。

difference コマンドを使用すると、次の対象の間の相違点を比較でき、可能な場合は表示できます。

  • 2 つの異なるファイル、または同じファイルの 2 つのバージョン

  • フォルダー内の 1 つまたは複数の項目

  • Team Foundation Server のシェルブセット内の 1 つ、複数、またはすべての項目

difference コマンドを使用すると、バージョン付きのファイルとバージョンなしのファイルの両方を比較できます。

Team Foundation では、すべてのファイルが種類ごとに分類されます。 両方のファイルのエンコーディングが同じであれば、テキスト ファイルは並べて、または行ごとにマージおよび比較できます。 エンコーディングが同じではない 2 つのファイルを比較する場合、/type オプションを使用してファイルのエンコーディング プロパティを一時的にマスクしたり、オーバーライドしたりできます。 バイナリ ファイルは比較できますが、マージできません。 1 つまたは複数のバイナリ ファイルを difference コマンドに渡すと、それらのファイルと、比較対象である項目の間の相違点が Team Foundation により示されます。 Team Foundation で種類の異なるファイル間の相違点を識別し、それらのファイルを処理する方法の詳細については、「ファイルの種類の管理」を参照してください。

2 つのファイル名を指定した場合、2 つのファイルが比較されます。 /version フラグを使用する代わりに、各ファイル名の終わりにセミコロンとバージョン識別子を付加することにより、バージョンを指定できます。

itemspec を 1 つだけ difference コマンドに渡した場合は、次のような処理が行われます。

  • versionspec を指定しない場合は、既定で、項目の現在のワークスペースのバージョンが基本ワークスペース バージョンと比較されます。 たとえば、tf difference header.h では、header.h の現在のバージョンと、header.h の基になっているバージョンが比較されます。

  • itemspec でバージョンを指定した場合 (tf difference header.h;LBeta1 など)、Team Foundation によりそのバージョンと、ディスク上の現在のワークスペースのバージョンが比較されます。

  • バージョンの範囲を指定した場合 (/version:C1~C4)、範囲の両端に位置するファイルのバージョンが比較されます。

tf コマンド ライン ユーティリティの使い方の詳細については、「Tf コマンド ライン ユーティリティのコマンド」を参照してください。

出力形式の種類

format パラメーターを /format オプションと共に使用すると、さまざまな出力形式を指定できます。 使用できる出力の種類は次のとおりです。

  • Visual

    Visual 形式の種類では、外部の相違点アプリケーションが開かれます。 既定では、diffmerge.exe が起動されます。

  • Brief

    Brief 形式では、比較対象のファイルが異なっているかどうかが出力されます。

  • Context

    Context 形式では、ファイル内の相違点のコンテキストの行が表示されます。 この形式は、UNIX ベースの diff –c 出力形式から派生しています。

  • RCS

    RCS 形式は、コンテキスト行が提供されない点以外は、/format:unix と同様です。

    ファイルの終わりにライン マーカーの終点がない場合に、特別な処理は行われません。

  • SS

    SS は、Visual SourceSafe の既定の相違点出力形式です。 詳細については、Microsoft の Web サイト (https://go.microsoft.com/fwlink/?LinkId=99139) の「Diff (ファイル) (コマンド ライン)」を参照してください。

  • SS_SideBySide

    SS_SideBySide は、Visual SourceSafe の既定の並べられた出力形式です。

  • SS_Unix

    SS_Unix は、/format:unix 出力形式と同様ですが、/format:ss_unix にはコンテキスト行が含まれており、/format:unix には含まれていません。

  • Unified

    Unified 形式は、UNIX ベースの diff –u 出力形式から派生しています。 /format:context では、相違点文字列間の同一のコンテキスト行が繰り返されますが、/format:unified では繰り返されません。

    Unified 形式は、次の相違点文字列までの距離がコンテキスト行の数より多いときのみ、 新しい統合された相違点文字列 (@@ ...@@) を作成します。

  • Unix

    この種類の出力は、UNIX ベースの diff コマンド出力形式から派生しています。

    Unix 出力形式は、次のようにして構築されます。

    <metadataline>
    "< " line prefix for lines from the first file
    "---" line
    "> " line prefix for lines from the second file
    
    <metadataline> can be one of these possibilities:
    #a#,# -- add lines from line # in file1 into file2 at lines #->#
    #,#d# -- delete lines from line # -> # in file 1 from file2 at line #
    #,#c#,# -- change lines from line # -> # in file1 into the lines in file2 at line # -> #
    
    # signs seprated by commas indicate a line range.
    # signs before the character indicate line numbers in the first file
    # signs after the character indidicate line numbers in the second file
    
    /// No end of line marker at the end of the file:
    /// \ No newline at end of file
    

次の例は、314.cs のローカル バージョンと、314.cs のワークスペース バージョン (Team Foundation バージョン管理サーバーからチェックアウトされたファイルのバージョン) の間の相違点を表示します。

c:\projects>tf difference 314.cs

次の例は、src フォルダー内の変更されたすべてのファイルを表示します。 src のサブフォルダー内の変更されたファイルは表示しません。

c:\projects>tf difference src /format:visual

次の例は、1254.cs の変更セット 3 と変更セット 8 の間の相違点を表示します。

c:\projects>tf difference /version:C3~C8 1254.cs

次の例は、314.cs のラベル "release" に属するバージョンと、変更セット 3200 に属するバージョンの間の相違点を表示します。

c:\projects>tf difference 314.cs;Lrelease 314.cs;C3200

または

c:\projects>tf difference 314.cs;Lrelease~C3200

次の例は、e271.cs の、Nadia というユーザーがシェルブセット PeerCodeReview8 でシェルブしたバージョンと、そのユーザーが変更の基にしたバージョンである基本シェルブセット バージョンの間の相違点を表示します。 さらに、Nadia がシェルブしたときに e271.cs に対して保留になっている変更の種類も表示します。

c:\projects> tf difference /shelveset:PeerCodeReview8;Nadia e271.cs

次の例は、PeerCodeReview2 シェルブセットのすべてのファイルと、それらのファイルの基本シェルブセット バージョンの間の相違点を表示します。

c:\projects> tf difference /shelveset:PeerCodeReview2

参照

参照

Merge コマンド

Checkin コマンド

Shelvesets コマンド

概念

ファイルの種類の管理

その他の技術情報

Tf コマンド ライン ユーティリティのコマンド

フォルダーおよびファイルの比較