Difference コマンド

更新 : 2007 年 11 月

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

必要なアクセス許可

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

tf diff[erence] itemspec [/version:versionspec] [/type:filetype] 
[/format:format [/ignorespace] [/ignoreeol] [/ignorecase] [/recursive] 
[/options]

tf diff[erence] itemspec itemspec2 [/type:filetype] [/format: format] 
[/ignorespace] [/ignoreeol] [/ignorecase] [/recursive] [/options]

tf diff[erence] [/shelveset:shelvesetname[;shelvesetowner]] 
shelveset_itemspec [/server: servername] [/type:filetype] 
[/format: format] [/ignorespace] [/ignoreeol] [/ignorecase] 
[/recursive] [/options]

tf diff[erence] /configure

パラメータ

引数

説明

itemspec

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

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

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

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

Itemspec2

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

Filetype

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

Format

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

  • Visual

  • Brief

  • Context

  • RCS

  • SS

  • SS_SideBySide

  • SS_Unix

  • Unified

  • Unix

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

Versionspec

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

servername

/server オプションにユーザーが指定した値。例: teamfoundation2。

Shelvesetowner

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

Shelvesetname

シェルブセットの名前を指定します。各シェルブセットを異なるユーザーが所有している場合は、Team Foundation Server に同じ名前のシェルブセットが複数存在する可能性がある点に注意してください。

Shelveset_itemspec

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

オプション

説明

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

/server

Team Foundation Server を識別します。ワークスペースに割り当てられていないディレクトリからコマンドを呼び出す場合は、このオプションを指定する必要があります。

/shelveset

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

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

/noprompt

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

/configure

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

解説

6fd7dc73.alert_note(ja-jp,VS.90).gifメモ :

コマンド ラインで 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 コマンド ライン ユーティリティのコマンド

バージョン管理でのフォルダとファイルの比較