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
传入标志。 源代码管理插件必须针对源代码管理的文件检查磁盘上的字节字节,并返回一个值,该值指示这两个文件是否不同,而不向用户显示任何内容。
作为性能优化,源代码管理插件可以使用基于 检查um 或时间戳的替代方法,而不是调用SCC_DIFF_CONTENTS
的字节字节比较:这些形式的比较明显更快,但不太可靠。 并非所有源代码管理系统都可能支持这些替代比较方法,插件可能必须回退到内容比较。 所有源代码管理插件必须至少支持内容比较。
注意
快速差异标志是相互排斥的。 传递无标志是有效的,但同时传递多个标志无效。 SCC_DIFF_QUICK_DIFF
,它是组合所有标志的掩码,可用于测试,但不应作为参数传递。
fOption |
含义 |
---|---|
SCC_DIFF_IGNORECA标准版 | 不区分大小写的比较(可用于快速或视觉差异)。 |
SCC_DIFF_IGNORESPACE | 忽略空格(可用于快速或视觉差异)。 |
SCC_DIFF_QD_CONTENTS | 以无提示方式比较文件字节字节。 |
SCC_DIFF_QD_CHECKSUM | 支持时,以无提示方式通过 检查um 比较文件。 如果不支持,请回退到内容比较。 |
SCC_DIFF_QD_TIME | 支持时,以无提示方式比较文件及其时间戳。 如果不支持,请回退到内容比较。 |