SccDiff, funkcja

Ta funkcja wyświetla (lub opcjonalnie sprawdza) różnice między bieżącym plikiem (na dysku lokalnym) a ostatnią wersją zaewidencjonową w systemie kontroli źródła.

Składnia

SCCRTN SccDiff(
   LPVOID    pvContext,
   HWND      hWnd,
   LPCSTR    lpFileName,
   LONG      fOptions,
   LPCMDOPTS pvOptions
);

Parametry

pvContext

[in] Struktura kontekstu wtyczki kontroli źródła.

Hwnd

[in] Dojście do okna środowiska IDE, którego wtyczka kontroli źródła może używać jako elementu nadrzędnego dla wszystkich okien dialogowych, które udostępnia.

lpFileName

[in] Nazwa pliku, dla którego żądana jest różnica.

Foptions

[in] Flagi poleceń. Aby uzyskać szczegółowe informacje, zobacz Uwagi.

pvOptions

[in] Opcje specyficzne dla wtyczki kontroli źródła.

Wartość zwracana

Implementacja wtyczki kontroli źródła tej funkcji powinna zwrócić jedną z następujących wartości:

Wartość Opis
SCC_OK Kopia robocza i wersja serwera są identyczne.
SCC_I_FILESDIFFERS Kopia robocza różni się od wersji pod kontrolą źródła.
SCC_I_RELOADFILE Należy ponownie załadować plik lub projekt.
SCC_E_FILENOTCONTROLLED Plik nie jest pod kontrolą źródła.
SCC_E_NOTAUTHORIZED Użytkownik nie może wykonać tej operacji.
SCC_E_ACCESSFAILURE Wystąpił problem podczas uzyskiwania dostępu do systemu kontroli źródła, prawdopodobnie z powodu problemów z siecią lub rywalizacją. Zalecane jest ponowienie próby.
SCC_E_NONSPECIFICERROR Niepowodzeń nieokreślonych; nie uzyskano różnicy w pliku.
SCC_E_FILENOTEXIST Nie można odnaleźć pliku lokalnego.

Uwagi

Ta funkcja służy dwóm różnym celom. Domyślnie wyświetla listę zmian w pliku. Wtyczka kontroli źródła otwiera własne okno, niezależnie od wybranego formatu, aby wyświetlić różnice między plikiem użytkownika na dysku a najnowszą wersją pliku pod kontrolą źródła.

Alternatywnie środowisko IDE może po prostu wymagać określenia, czy plik uległ zmianie. Na przykład środowisko IDE może wymagać określenia, czy można bezpiecznie wyewidencjonować plik bez informowania użytkownika. W takim przypadku środowisko IDE przekazuje flagę SCC_DIFF_CONTENTS . Wtyczka kontroli źródła musi sprawdzić plik na dysku, bajt bajtowy, względem pliku kontrolowanego przez źródło i zwrócić wartość wskazującą, czy dwa pliki są różne bez wyświetlania niczego użytkownikowi.

W ramach optymalizacji wydajności wtyczka kontroli źródła może używać alternatywy na podstawie sumy kontrolnej lub znacznika czasu zamiast porównania bajtów bajtów wywoływanego przez SCC_DIFF_CONTENTS: te formy porównania są oczywiście szybsze, ale mniej niezawodne. Nie wszystkie systemy kontroli źródła mogą obsługiwać te alternatywne metody porównania, a wtyczka może wrócić do porównania zawartości. Wszystkie wtyczki kontroli źródła muszą co najmniej obsługiwać porównanie zawartości.

Uwaga

Szybkie flagi różnicy wykluczają się wzajemnie. Ważne jest, aby przekazać żadne flagi, ale nie jest ważne, aby jednocześnie przekazać więcej niż jeden. SCC_DIFF_QUICK_DIFF, która jest maską łączącą wszystkie flagi, może służyć do testowania, ale nigdy nie powinna być przekazywana jako parametr.

fOption Znaczenie
SCC_DIFF_IGNORECASE Porównanie bez uwzględniania wielkości liter (może służyć do szybkiej lub wizualnej różnicy).
SCC_DIFF_IGNORESPACE Ignoruje białe znaki (może służyć do szybkiej lub wizualnej różnicy).
SCC_DIFF_QD_CONTENTS W trybie dyskretnym porównuje plik bajtów bajtów.
SCC_DIFF_QD_CHECKSUM Dyskretnie porównuje plik za pomocą sumy kontrolnej, gdy jest obsługiwana. Jeśli nie jest obsługiwana, wróć do porównania zawartości.
SCC_DIFF_QD_TIME Dyskretnie porównuje plik za pomocą znacznika czasu, gdy jest obsługiwany. Jeśli nie jest obsługiwana, wróć do porównania zawartości.

Zobacz też