Difference コマンド
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Team Foundation バージョン管理 (TFVC) difference
コマンドは、2 つのファイル、2 つのフォルダー内のファイル、またはシェルブセットとローカルまたはサーバー ファイルの相違点を比較し、可能であれば表示します。
前提条件
difference
コマンドを使用するには、指定したすべてのアイテムの読み取りアクセス許可を [許可] に設定する必要があります。 詳細については、「既定の TFVC アクセス許可」を参照してください。
構文
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
パラメーター
引数
Argument
説明
<itemspec>
必須。 比較する項目を指定します。 バージョンまたはパスが指定されていない場合は、現在のワークスペース バージョンが想定されます。 ローカル と Azure DevOps の両方のサーバー パスを受け入れます。
TFVC が itemspec
を解析してスコープ内の項目を判別する方法の詳細については、「Team Foundation バージョン管理コマンドの使用」を参照してください。
difference
コマンドでは、ワイルドカード文字をサポートしていません。
このパラメーターを /shelveset
オプションと組み合わせることはできません。
<itemspec2>
省略可能。 itemspec
を比較する項目。 2 つめの itemspec
を指定しない場合は、項目の最新の Azure DevOps サーバー バージョンが使用されます。
<filetype>
/type
オプションの値を指定します。 binary
または text
と、コードページ番号またはコード ページのフレンドリ名を指定できます。
<format>
/format
オプションとともに使用して、次のいずれかの種類の出力形式を指定します。
Visual
Brief
Context
RCS
SS
SS_SideBySide
SS_Unix
Unified
Unix
これらの出力形式については、「解説」セクションで説明しています。
<versionspec>
/version
オプションのユーザー指定の値。 TFVC がバージョン指定を解析してそのスコープ内の項目を判別する方法の詳細については、「Team Foundation バージョン管理コマンドの使用」を参照してください。
<shelvesetowner>
シェルブセットの所有者をユーザー名で識別します。 このパラメーターの値が指定されていない場合は、現在のユーザーが想定されます。
<shelvesetname>
シェルブセットの名前を指定します。 TFVC を実行しているサーバーで同じ名前のシェルブセットを複数作成できるのは、異なるユーザーが各シェルブセットを所有している場合のみです。
<shelveset_itemspec>
基本シェルブセットのバージョンと比較するシェルブセット内のフォルダーまたはファイルの名前を指定します。
<username>
/login
オプションに値を指定します。 ユーザー名の値は、DOMAIN\username
または username
の形式で指定できます。
Options
オプション
説明
/type
検出されたエンコーディングをオーバーライドし、指定したエンコーディングを使用して差分エンジンにファイルを渡します。
/version
比較するファイルまたはフォルダーのバージョンを指定します。 既定では、versionspec
を指定しない場合、TFVC はワークスペース バージョンを使用します。
/version
フラグを使用する代わりに、各ファイル名の末尾にセミコロンとバージョン指定子を追加することで、バージョンを指定できます。
/format
format
引数で指定された出力形式を指定します。
/ignorespace
比較されたファイル間の空白の相違点は強調表示されません。
/ignoreeol
2 つのファイルまたはファイル バージョンの改行文字の相違点を無視します。 /ignoreeol
は、8 つのスペースを 1 つと同様に扱う ignorespace
とは異なる動作をします。 ただし、/ignoreeol
オプションを使用し、"ファイル A" の変更されていないテキスト領域の間に 2 つの改行文字があり、"ファイル B" に 1 つがある場合、結果は相違点として表示されます。 両方のファイルに新しい行が 1 つしかないが、"ファイル A" が新しい行として \r\n
を使用し、"ファイル B" が \n
を使用する場合、/ignoreeol
オプションはそれを相違点として無視します。
/ignorecase
比較されたファイル間の文字の大文字と小文字の相違点は強調表示されません。
/recursive
現在のフォルダーとそのすべてのサブフォルダーの相違点を比較します。
/options
difference
によって呼び出されるツールのオプション文字列を指定します。 詳細については、ファイルの種類を差分ツールに関連付ける方法に関する記事と「ファイルの種類とマージ ツールの関連付け」を参照してください。
/shelveset
シェルブセットの基本になる Azure DevOps サーバー バージョンと比較するシェルブセットを指定します。
このオプションを itemspec
引数と組み合わせることはできません。 個々のシェルブセット項目を比較するために、shelveset_itemspec
を指定できます。
/noprompt
指定しない場合にはこの操作の実行中に表示されるダイアログ ボックスを非表示にします。
/configure
Visual Studio ユーザー インターフェイスから [ユーザー ツールの構成] ダイアログ ボックスを呼び出します。 詳細については、ファイルの種類を差分ツールに関連付ける方法に関する記事を参照してください。
/login
TFVC でユーザーを認証するためのユーザー名とパスワードを指定します。
解説
注意
コマンド ラインで tf diff
または tf difference
を入力して、このコマンドを実行できます。
difference
コマンドを使用して、次の相違点を比較し、可能な場合は表示できます。
2 つの異なるファイル、または同じファイルの 2 つのバージョン。
フォルダー内の 1 つ以上のアイテム。
Azure DevOps サーバー上のシェルブセット内の 1 つ、一部、またはすべての項目。
difference
コマンドを使用して、バージョン管理されたファイルとバージョン管理されていないものの両方を比較できます。
TFVC は、すべてのファイルを種類別に分類します。 テキスト ファイルは、両方のファイルのエンコードが同じである限り、マージして、横並びで 1 行ずつ比較できます。 エンコードが同じではない 2 つのファイルを比較する場合は、/type
オプションを使用して、ファイルのエンコード プロパティを一時的にマスクまたはオーバーライドできます。
バイナリ ファイルは比較できますが、マージできません。 difference
コマンドに 1 つ以上のバイナリ ファイルを渡すと、TFVC は、そのファイルと比較対象の項目との間に相違点が存在するかどうかを示します。 TFVC が異なる種類のファイルを区別して扱う方法の詳細については、ファイルの種類の管理に関する記事を参照してください。
2 つのファイル名を指定すると、2 つのファイルが比較されます。 /version フラグを使用する代わりに、各ファイル名の末尾にセミコロンとバージョン指定子を追加することで、バージョンを指定できます。
1 つの itemspec
のみを difference コマンドに渡す場合:
versionspec
を指定しない場合、項目の現在のワークスペース バージョンが、既定で基本ワークスペース バージョンと比較されます。 たとえば、tf difference header.h
は、現在のバージョンの "header.h" を "header.h" の基本になっているバージョンと比較します。tf difference header.h;LBeta1
などのversionspec
をitemspec
に含めると、TFVC はそのバージョンをディスク上の現在のワークスペース バージョンと比較します。/version:C1~C4
などのバージョンの範囲を指定すると、その範囲の 2 つのエンドポイントにあるファイルのバージョンが比較されます。
tf
コマンド ライン ユーティリティの使用方法の詳細については、「Team Foundation バージョン管理コマンドの使用」を参照してください。
出力形式の種類
/format
オプションとともに使用される format
パラメーターは、さまざまな出力形式を指定します。 次の出力の種類を使用できます。
Visual
形式の種類を使用すると、外部差分アプリケーションが開きます。 既定では、"diffmerge.exe" が起動されます。Brief
形式は、比較対象のファイルが異なるかどうかを出力します。Context
形式は、ファイルの相違点に関するコンテキスト行を提供します。 この形式は、UNIX ベースのdiff -c
出力形式から派生します。RCS
形式は/format:unix
に似ていますが、コンテキスト行は提供されません。 ファイルの末尾に行の末尾マーカーが見つからない場合、特別な処理は行われません。SS
は、Visual SourceSafe の既定の差分出力形式です。 詳細については、「Diff (command line)」を参照してください。SS_SideBySide
は、Visual SourceSafe の既定の横並び出力形式です。SS_Unix
は/format:unix
出力形式に似ていますが、/format:ss_unix
にはコンテキスト行が含まれていて、/format:unix
にはありません。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 separated by commas indicate a line range. # signs before the character indicate line numbers in the first file. # signs after the character indicate 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" と、Azure DevOps サーバーからチェックアウトされたファイルのバージョンである "314.cs" のワークスペース バージョンの相違点を表示します。
c:\projects>tf difference 314.cs
次の例は、"src" フォルダー内で変更されたすべてのファイルを表示しますが、"src" のサブフォルダーで変更されたファイルは表示しません。
c:\projects>tf difference src /format:visual
次の例は、"1254.cs" の changeset 3 と changeset 8 の相違点を表示します。
c:\projects>tf difference /version:C3~C8 1254.cs
次の例は、ラベル release
に属する "314.cs" のバージョンと changeset 3200 に属するバージョンの相違点を表示します。
c:\projects>tf difference 314.cs;Lrelease 314.cs;C3200
または
c:\projects>tf difference 314.cs;Lrelease~C3200
次の例は、Pat というユーザーがシェルブセット PeerCodeReview8
にシェルブした "e271.cs" のバージョンと、その変更のベースの基本シェルブセット バージョンの相違点を表示します。 出力には、ユーザーがシェルブしたときに e271.cs
に対して保留されていた変更の種類も表示されます。
c:\projects> tf difference /shelveset:PeerCodeReview8;Pat e271.cs
次の例は、PeerCodeReview2
シェルブセット内のすべてのファイルと、それらのファイルの基本シェルブセット バージョンの相違点を表示します。
c:\projects> tf difference /shelveset:PeerCodeReview2