SccDiff 函式
此函式會顯示目前檔案(在本機磁碟上)與原始檔控制系統中最後存回版本之間的差異(或選擇性只檢查)。
語法
SCCRTN SccDiff(
LPVOID pvContext,
HWND hWnd,
LPCSTR lpFileName,
LONG fOptions,
LPCMDOPTS pvOptions
);
參數
pvContext
[in]原始檔控制外掛程式內容結構。
hWnd
[in]原始檔控制外掛程式可作為其提供之任何對話框之父代的 IDE 視窗句柄。
lpFileName
[in]要求差異的檔名。
fOptions
[in]命令旗標。 如需詳細資料,請參閱備註。
pvOptions
[in]原始檔控制外掛程式特定選項。
傳回值
此函式的原始檔控制外掛程式實作應該會傳回下列其中一個值:
值 | Description |
---|---|
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 | 支援時,以無訊息方式比較檔案及其時間戳。 如果不支援,請回復為內容的比較。 |