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. |