次の方法で共有


SccDiff 関数

この関数は、ソース管理システムで現在のファイル (ローカル ディスク上) と最後にチェックインされたバージョンとの差異を表示します (または必要に応じて差異の有無の確認のみを行います)。

構文

SCCRTN SccDiff(
   LPVOID    pvContext,
   HWND      hWnd,
   LPCSTR    lpFileName,
   LONG      fOptions,
   LPCMDOPTS pvOptions
);

パラメーター

pvContext

[入力] ソース管理プラグインのコンテキスト構造体。

hWnd

[入力] ソース管理プラグインが、提供するすべてのダイアログ ボックスの親として使用できる IDE ウィンドウへのハンドル。

lpFileName

[入力] 差異が要求されるファイルの名前。

fOptions

[入力] コマンド フラグ。 詳細については、「解説」を参照してください。

pvOptions

[入力] ソース管理プラグイン固有のオプション。

戻り値

この関数のソース管理プラグインの実装では、次のいずれかの値が返されることが予期されています。

Value 説明
SCC_OK 作業コピーとサーバー バージョンは同一です。
SCC_I_FILESDIFFERS 作業コピーは、ソース管理下のバージョンとは異なります。
SCC_I_RELOADFILE ファイルまたはプロジェクトを再度読み込む必要があります。
SCC_E_FILENOTCONTROLLED ファイルはソース管理されていません。
SCC_E_NOTAUTHORIZED ユーザーには、この操作の実行が許可されていません。
SCC_E_ACCESSFAILURE ソース管理システムへのアクセス中に問題が発生しました。ネットワークまたは競合の問題である可能性があります。 再試行することをお勧めします。
SCC_E_NONSPECIFICERROR 不特定のエラーです。ファイルの差異は取得されませんでした。
SCC_E_FILENOTEXIST ローカル ファイルが見つかりませんでした。

解説

この関数は、2 つの異なる目的を果たします。 既定では、ファイルに対する変更の一覧が表示されます。 ソース管理プラグインは、選択した形式で独自のウィンドウを開き、ディスク上のユーザーのファイルと、ソース管理下にあるファイルの最新バージョンとの差異を表示します。

または、IDE で、単にファイルが変更されたかどうかを判断する必要がある場合があります。 たとえば、IDE では、ユーザーに通知することなくファイルをチェックアウトしても安全かどうかを判断する必要がある場合があります。 その場合は、IDE によって SCC_DIFF_CONTENTS フラグが渡されます。 ソース管理プラグインでは、ソース管理下にあるファイルに対してディスク上のファイルをバイト単位でチェックし、ユーザーに何も表示せずに 2 つのファイルが異なるかどうかを示す値を返す必要があります。

パフォーマンスを最適化するために、ソース管理プラグインでは、SCC_DIFF_CONTENTS によって要求されるバイト単位の比較ではなく、チェックサムまたはタイムスタンプに基づく代替策を使用する場合があります。この形式の比較は明らかに高速ですが、信頼性は低くなります。 すべてのソース管理システムでこれらの代替の比較方法がサポートされるとは限りません。また、プラグインでコンテンツ比較へのフォールバックが必要になる場合があります。 すべてのソース管理プラグインで、少なくともコンテンツ比較をサポートしている必要があります。

Note

クイック差分フラグは相互に排他的です。 フラグを渡さないことは有効ですが、複数を同時に渡すことは有効ではありません。 すべてのフラグを組み合わせたマスクである SCC_DIFF_QUICK_DIFF は、テストに使用できますが、パラメーターとしては渡さないようにする必要があります。

fOption 意味
SCC_DIFF_IGNORECASE 大文字と小文字を区別しない比較 (クイックまたはビジュアルな差異に使用できます)。
SCC_DIFF_IGNORESPACE 空白を無視します (クイックまたはビジュアルな差異に使用できます)。
SCC_DIFF_QD_CONTENTS ファイルをバイト単位で自動的に比較します。
SCC_DIFF_QD_CHECKSUM サポートされている場合は、チェックサムを使用してファイルを自動的に比較します。 サポートされていない場合は、コンテンツの比較にフォールバックします。
SCC_DIFF_QD_TIME サポートされている場合は、タイムスタンプを使用してファイルを自動的に比較します。 サポートされていない場合は、コンテンツの比較にフォールバックします。

関連項目