MSSCCPRJ. Plik SCC
W przypadku umieszczenia rozwiązania programu Visual Studio lub projektu pod kontrolą źródła przy użyciu środowiska IDE środowisko IDE otrzymuje dwa kluczowe informacje. Informacje pochodzą z wtyczki kontroli źródła w postaci ciągów. Te ciągi, "AuxPath" i "ProjName", są nieprzezroczyste w środowisku IDE, ale są one używane przez wtyczkę do lokalizowania rozwiązania lub projektu w kontroli wersji. Środowisko IDE zwykle pobiera te ciągi po raz pierwszy przez wywołanie ścieżki SccGetProjPath, a następnie zapisuje je w pliku rozwiązania lub projektu na potrzeby przyszłych wywołań do SccOpenProject. W przypadku osadzania w plikach rozwiązania i projektu ciągi "AuxPath" i "ProjName" nie są automatycznie aktualizowane, gdy gałęzie użytkownika, rozwidlenia lub kopiują pliki rozwiązania i projektu, które są w kontroli wersji. Aby upewnić się, że pliki rozwiązania i projektu wskazują poprawną lokalizację w kontroli wersji, użytkownicy muszą ręcznie zaktualizować ciągi. Ponieważ ciągi mają być nieprzezroczyste, nie zawsze może być jasne, jak należy je zaktualizować.
Wtyczka kontroli źródła może uniknąć tego problemu, przechowując ciągi "AuxPath" i "ProjName" w specjalnym pliku o nazwie MSSCCPRJ.SCC . Jest to lokalny plik po stronie klienta, który jest własnością i jest obsługiwany przez wtyczkę. Ten plik nigdy nie jest umieszczany pod kontrolą źródła, ale jest generowany przez wtyczkę dla każdego katalogu zawierającego pliki kontrolowane przez źródło. Aby określić, które pliki to rozwiązanie programu Visual Studio i pliki projektu, wtyczka kontroli źródła może porównać rozszerzenia plików ze standardową lub dostarczoną przez użytkownika listą. Gdy środowisko IDE wykryje, że wtyczka obsługuje plik MSSCCPRJ.SCC , przestaje osadzać ciągi "AuxPath" i "ProjName" do plików rozwiązania i projektu, a zamiast tego odczytuje te ciągi z pliku MSSCCPRJ.SCC .
Wtyczka kontroli źródła, która obsługuje plik MSSCCPRJ.SCC , musi być zgodna z następującymi wytycznymi:
W każdym katalogu może istnieć tylko jeden plik MSSCCPRJ.SCC .
Plik MSSCCPRJ.SCC może zawierać pliki "AuxPath" i "ProjName" dla wielu plików znajdujących się pod kontrolą źródła w danym katalogu.
Ciąg "AuxPath" nie może zawierać cudzysłowów. Może on zawierać cudzysłowy jako ograniczniki (na przykład para podwójnych cudzysłowów może służyć do wskazywania pustego ciągu). Środowisko IDE usunie wszystkie cudzysłowy z ciągu "AuxPath", gdy zostanie odczytany z pliku MSSCCPRJ.SCC .
Ciąg "ProjName" w MSSCCPRJ. Plik SCC musi odpowiadać dokładnie ciągowi zwróconym z
SccGetProjPath
funkcji. Jeśli ciąg zwrócony przez funkcję zawiera cudzysłowy wokół niego, ciąg w pliku MSSCCPRJ.SCC musi zawierać cudzysłowy wokół niego i odwrotnie.Plik MSSCCPRJ.SCC jest tworzony lub aktualizowany za każdym razem, gdy plik zostanie umieszczony pod kontrolą źródła.
Jeśli plik MSSCCPRJ.SCC zostanie usunięty, dostawca powinien go ponownie wygenerować przy następnym wykonaniu operacji kontroli źródła dotyczącej tego katalogu.
Plik MSSCCPRJ.SCC musi być ściśle zgodny ze zdefiniowanym formatem.
Ilustracja msSCCPRJ. Format pliku SCC
Poniżej przedstawiono przykładowy format pliku MSSCCPRJ.SCC (numery wierszy są podane tylko jako przewodnik i nie powinny być uwzględniane w treści pliku):
[Wiersz 1]
SCC = This is a Source Code Control file
[Wiersz 2]
[Wiersz 3]
[TestApp.sln]
[Wiersz 4]
SCC_Aux_Path = "\\server\vss\"
[Wiersz 5]
SCC_Project_Name = "$/TestApp"
[Wiersz 6]
[Wiersz 7]
[TestApp.csproj]
[Wiersz 8]
SCC_Aux_Path = "\\server\vss\"
[Wiersz 9]
SCC_Project_Name = "$/TestApp"
Pierwszy wiersz określa przeznaczenie pliku i służy jako podpis dla wszystkich plików tego typu. Ten wiersz powinien wyglądać dokładnie tak w przypadku wszystkich plików MSSCCPRJ.SCC :
SCC = This is a Source Code Control file
Poniższe ustawienia szczegółów sekcji dla każdego pliku oznaczone nazwą pliku w nawiasach kwadratowych. Ta sekcja jest powtarzana dla każdego śledzonego pliku. Ten wiersz jest przykładem nazwy pliku, a mianowicie [TestApp.csproj]
. Środowisko IDE oczekuje następujących dwóch wierszy. Nie definiuje jednak stylu zdefiniowanych wartości. Zmienne to SCC_Aux_Path
i SCC_Project_Name
.
SCC_Aux_Path = "\\server\vss\"
SCC_Project_Name = "$/TestApp"
W tej sekcji nie ma ogranicznika końcowego. Nazwa pliku, a także wszystkie literały, które pojawiają się w pliku, są zdefiniowane w pliku nagłówkowym scc.h. Aby uzyskać więcej informacji, zobacz Ciągi używane jako klucze do znajdowania wtyczki kontroli źródła.