次の方法で共有


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 つのフォルダー内のファイル、またはシェルブセットとローカルまたはサーバー ファイルの違いを比較し、可能な場合は表示します。

前提 条件

コマンドを使用するには、指定したすべてのアイテムの 読み取り アクセス許可を [を許可] 設定します。 詳細については、「既定の 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

パラメーター

引数

引数の

説明

<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とは異なる動作をします。 ただし、 オプションを使用し、ファイル 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 オプションを使用して、ファイルのエンコード プロパティを一時的にマスクまたはオーバーライドできます。

バイナリ ファイルは比較できますが、マージすることはできません。 1 つ以上のバイナリ ファイルを difference コマンドに渡すと、TFVC は比較対象の項目との間に相違点が存在するかどうかを示します。 TFVC が異なる種類のファイルを区別して扱う方法の詳細については、「ファイルの種類の管理を参照してください。

2 つのファイル名を指定すると、2 つのファイルが比較されます。 /version フラグを使用する代わりに、各ファイル名の末尾にセミコロンとバージョン指定子を追加することで、バージョンを指定できます。

差分コマンドに渡す itemspec が 1 つだけの場合:

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

  • tf difference header.h;LBeta1など、itemspecversionspec を含める場合、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