Функция SccDiff
Эта функция отображает (или при необходимости просто проверка) различия между текущим файлом (на локальном диске) и последней версией проверка в системе управления версиями.
Синтаксис
SCCRTN SccDiff(
LPVOID pvContext,
HWND hWnd,
LPCSTR lpFileName,
LONG fOptions,
LPCMDOPTS pvOptions
);
Параметры
pvContext
[in] Структура контекста подключаемого модуля управления версиями.
hWnd
[in] Дескриптор окна интегрированной среды разработки, который подключаемый модуль управления версиями может использовать в качестве родительского элемента для любых диалоговых окон, которые он предоставляет.
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 | Локальный файл не найден. |
Замечания
Эта функция служит двумя разными целями. По умолчанию отображается список изменений в файле. Подключаемый модуль управления версиями открывает собственное окно в любом формате, чтобы отобразить различия между файлом пользователя на диске и последней версией файла под управлением версиями.
Кроме того, интегрированной среде разработки может потребоваться определить, изменился ли файл. Например, интегрированной среде разработки может потребоваться определить, безопасно ли проверка файл без информирования пользователя. В этом случае интегрированная среда разработки передает флаг SCC_DIFF_CONTENTS
. Подключаемый модуль управления версиями должен проверка файл на диске, байтах байтов в файле, управляемом источником, и возвращать значение, указывающее, отличаются ли эти два файла, не отображая ничего для пользователя.
В качестве оптимизации производительности подключаемый модуль управления версиями может использовать альтернативу на основе проверка sum или метки времени вместо сравнения по байтам, вызываемогоSCC_DIFF_CONTENTS
: эти формы сравнения, очевидно, быстрее, но менее надежны. Не все системы управления версиями могут поддерживать эти альтернативные методы сравнения, и подключаемый модуль может вернуться к сравнению содержимого. Все подключаемые модули управления версиями должны поддерживать по крайней мере сравнение содержимого.
Примечание.
Флаги быстрого различия являются взаимоисключающими. Допустимо передавать флаги без флагов, но он не является допустимым для одновременного передачи нескольких. SCC_DIFF_QUICK_DIFF
, которая представляет собой маску, которая объединяет все флаги, может использоваться для тестирования, но она никогда не должна передаваться в качестве параметра.
fOption |
Значение |
---|---|
SCC_DIFF_IGNORECASE | Сравнение без учета регистра (может использоваться для быстрой или визуальной разницы). |
SCC_DIFF_IGNORESPACE | Игнорирует пробелы (можно использовать как для быстрого, так и визуального различия). |
SCC_DIFF_QD_CONTENTS | Автоматически сравнивает файл, байт байт. |
SCC_DIFF_QD_CHECKSUM | Автоматически сравнивает файл с помощью проверка sum при поддержке. Если оно не поддерживается, возвращается к сравнению содержимого. |
SCC_DIFF_QD_TIME | Автоматически сравнивает файл с помощью метки времени при поддержке. Если оно не поддерживается, возвращается к сравнению содержимого. |