Difference コマンド
Azure DevOps Services の |Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 |Visual Studio 2022
Team Foundation Version Control (TFVC) difference
コマンドは、2 つのファイル、2 つのフォルダー内のファイル、またはシェルブセットとローカルまたはサーバー ファイルの違いを比較し、可能な場合は表示します。
前提 条件
構文
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>
必須。 比較する項目を指定します。 バージョンまたはパスが指定されていない場合は、現在のワークスペース のバージョンが想定されます。 ローカルと 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
として指定できます。
オプション
オプションの
説明
/type
検出されたエンコーディングをオーバーライドし、指定されたエンコーディングを使用して差分エンジンにファイルを表示します。
/version
比較するファイルまたはフォルダーのバージョンを指定します。 既定では、versionspec
を指定しない場合、TFVC はワークスペースのバージョンを使用します。
/version
フラグを使用する代わりに、各ファイル名の末尾にセミコロンとバージョン指定子を追加することで、バージョンを指定できます。
/format
format
引数で指定された出力形式を指定します。
/ignorespace
比較されたファイル間の空白の違いは強調表示されません。
/ignoreeol
2 つのファイルまたはファイル バージョンの改行文字の違いを無視します。
/ignoreeol
は、8 つのスペースを 1 つのスペースと同じように扱う ignorespace
とは異なる動作をします。 ただし、\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
オプションを使用して、ファイルのエンコード プロパティを一時的にマスクまたはオーバーライドできます。
バイナリ ファイルは比較できますが、マージすることはできません。 1 つ以上のバイナリ ファイルを difference
コマンドに渡すと、TFVC は比較対象の項目との間に相違点が存在するかどうかを示します。 TFVC が異なる種類のファイルを区別して扱う方法の詳細については、「ファイルの種類の管理を参照してください。
2 つのファイル名を指定すると、2 つのファイルが比較されます。 /version フラグを使用する代わりに、各ファイル名の末尾にセミコロンとバージョン指定子を追加することで、バージョンを指定できます。
差分コマンドに渡す itemspec
が 1 つだけの場合:
versionspec
を指定しない場合、アイテムの現在のワークスペース バージョンは、既定で基本ワークスペースのバージョンと比較されます。 たとえば、tf difference header.h
では、header.h の現在のバージョンと、header.h の基になっているバージョンが比較されます。tf difference header.h;LBeta1
など、itemspec
にversionspec
を含める場合、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 (コマンド ライン)を参照してください。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の変更セット 3 と変更セット 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
関連記事
- Merge コマンド
- checkin コマンド を
する - [シェルブセットの ] コマンド
- ファイルの種類の管理
- フォルダーとファイルの を比較する