SccDiff 函式
這個函式會顯示 (或選擇性地只會檢查) 目前的檔案 (位於本機磁碟上) 和它的最後一次簽入版本之間的差異,即可在來源控制系統。
SCCRTN SccDiff(
LPVOID pvContext,
HWND hWnd,
LPCSTR lpFileName,
LONG fOptions,
LPCMDOPTS pvOptions
);
參數
pvContext
[in]原始檔控制外掛程式的內容結構。hWnd
[in]原始檔控制外掛程式可用於為父代對話框它所提供的 IDE 視窗控制代碼。lpFileName
[in]要求不同的檔名。fOptions
[in]命令旗標。 如需詳細資訊,請參閱 「 備註 」。pvOptions
[in]原始檔控制外掛程式專屬選項。
傳回值
原始檔控制外掛程式的實作這個函式被期待傳回下列值之一:
值 |
描述 |
---|---|
SCC_OK |
工作複本與伺服器版本是相同的。 |
SCC_I_FILESDIFFERS |
工作複本與原始檔控制下的版本不同。 |
SCC_I_RELOADFILE |
需要重新載入檔案或專案。 |
SCC_E_FILENOTCONTROLLED |
檔案不在原始檔控制中。 |
SCC_E_NOTAUTHORIZED |
若要執行這項作業不允許使用者。 |
SCC_E_ACCESSFAILURE |
無法存取原始檔控制系統,可能因為到網路或爭用問題。 建議您重試。 |
SCC_E_NONSPECIFICERROR |
非特定的失敗。 無法取得檔案的差異。 |
SCC_E_FILENOTEXIST |
找不到本機檔案。 |
備註
這個函式有兩個不同的目的。 預設情況下,它會顯示變更清單的檔案。 在原始檔控制外掛程式自己的視窗中開啟任何選擇,以顯示磁碟上的使用者的檔案和原始檔控制下檔案的最新版本之間的差異的格式。
或者,IDE 可能只被要判斷檔案是否已變更。 比方說,IDE 可能需要判斷是否可以安全地簽出檔案,而不通知使用者。 在此情況下,IDE 會傳入SCC_DIFF_CONTENTS旗標。 原始檔控制外掛程式必須檢查磁碟,位元組對位元組,對原始檔控制的檔案上的檔案,並傳回值,指出兩個檔案而不會向使用者顯示任何項目是否不同。
為一種效能最佳化,原始檔控制外掛程式可能會使用替代方法,根據總和檢查碼或時間戳記,而不是位元組的比較所SCC_DIFF_CONTENTS: 這些比較的表單是很明顯地更快,但較不可靠。 並非所有的原始檔控制系統可能會支援這些替代比較方法,而且外掛程式可能要改為使用內容比較。 所有的原始檔控制外掛程式最低限度,必須支援的內容比較。
![]() |
---|
快速差異旗標是互斥的。無效的傳遞沒有旗標,但同時傳送多個無效。SCC_DIFF_QUICK_DIFF這一個結合了所有的旗標的遮罩可以用來測試,但是它應該永遠不會做為參數傳遞。 |
fOption |
意義 |
---|---|
SCC_DIFF_IGNORECASE |
不區分大小寫的比較 (可用於快速或視覺差異)。 |
SCC_DIFF_IGNORESPACE |
會忽略泛空白字元 (可用於快速或視覺差異)。 |
SCC_DIFF_QD_CONTENTS |
以無訊息模式會比較檔案,也就是位元組對位元組。 |
SCC_DIFF_QD_CHECKSUM |
以無訊息模式會比較總和檢查碼時支援透過檔案。 如果不受支援,會回復成的內容比較。 |
SCC_DIFF_QD_TIME |
以無訊息模式會比較透過支援時,其時間戳記的檔案。 如果不受支援,會回復成的內容比較。 |