Поделиться через


Функция 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 Автоматически сравнивает файл с помощью метки времени при поддержке. Если оно не поддерживается, возвращается к сравнению содержимого.

См. также