Spis treści
Ten dodatek zawiera bardziej szczegółowe omówienie realizacji niektórych funkcji TortoiseSVN.
Każdy plik i folder ma wartość statusu Subversion, zgłoszoną przez bibliotekę Subversion. W linii poleceń klienta, są one reprezentowane przez pojedyncze kody literowe, zaś w TortoiseSVN są one wyświetlane graficznie za pomocą nakładki ikony. Ponieważ liczba nakładek jest bardzo ograniczona, każda nakładka może reprezentować jedną z kilku wartości statusu.
Nakładka w stanie konfliktu jest używana do reprezentowania statusu skonfliktowany
, gdzie aktualizacja lub przełączenie spowodowało konflikty między lokalnymi zmianami i zmianami pobranymi z repozytorium. Jest również stosowany w celu wskazania statusu niedostępny
, który może wystąpić, gdy operacja nie może zostać zakończona.
Nakładka zmodyfikowano reprezentuje stan zmodyfikowane
, w którym występują lokalne modyfikacje, stan scalono
, w którym zmiany z repozytorium zostały scalone ze zmianami lokalnymi, oraz stan zastąpiono
, w którym plik został usunięty i zastąpiony przez inny plik o tej samej nazwie.
Nakładka usunięto reprezentuje stan usunięto
, w którym element jest planowany na usunięcie lub stan nie znaleziono
, w którym element nie jest obecny. Oczywiście element którego brakuje nie może sam mieć nakładki, ale folder macierzysty może być oznaczony, jeśli brakuje jednego z jego elementów podrzędnych.
Nakładka dodano jest po zwykle używana do reprezentowania statusu dodano
, gdy element został dodany do kontroli wersji.
Nakładka w Subversion jest używana do reprezentowania elementu, który jest w stanie zwykły
, lub wersjonowany element, którego stan nie jest jeszcze znany. Ponieważ TortoiseSVN wykorzystuje proces buforowania w tle by gromadzić informacje o statusie, może upłynąć kilka sekund, zanim ustawi się właściwa nakładka.
Nakładka wymaga blokady jest używana do wskazania, kiedy plik ma ustalony atrybut svn:needs-lock
.
Nakładka zablokowany jest używana, gdy lokalna kopia robocza posiada blokadę dla tego pliku.
Nakładka ignorowany jest używana do reprezentowania elementu, który jest w stanie ignorowany
ze względu na globalny wzorzec ignorowania albo atrybut svn:ignore
folderu nadrzędnego. Ta nakładka jest opcjonalna.
Nakładka niewersjonowany jest używana do reprezentowania elementu w stanie niewersjonowany
. Jest to element z folderu pod kontrolą wersji, który nie jest wersjonowany. Ta nakładka jest opcjonalna.
Jeśli item ma status Subversion brak
(elementu nie ma w kopii roboczej), nie zostanie pokazana żadna nakładka. Jeśli wybraliście zablokowanienakładek Ignorowany i Niewersjonowany, nie pokaże się również żadna nakładka również dla takich plików.
Element może mieć tylko jedną wartość stanu Subversion. Na przykład plik może być lokalnie modyfikowany i może to być zaznaczony do usunięcia w tym samym czasie. Subversion zwraca pojedynczą wartość stanu - w tym przypadku usunięto
. Priorytety te są zdefiniowane w samym Subversion.
Kiedy TortoiseSVN wyświetla status rekursywnie (ustawienie domyślne), każdy folder wyświetla nakładkę odzwierciedlającą jego własny status i stan wszystkich jego elementów podrzędnych. W celu wyświetlenia jednej nakładki podsumowania, używamy kolejności priorytetów przedstawionej powyżej, aby określić, której nakładki użyć, z nakładką w stanie konfliktu mającą najwyższy priorytet.
W rzeczywistości może się okazać, że nie wszystkie te ikony są używane w systemie. To dlatego, że liczba nakładek dozwolonych przez system Windows jest ograniczona do 15. Windows używa 4 z nich, a pozostałe 11 może być używane przez inne aplikacje. Jeśli nie ma wystarczającej liczby dostępnych gniazd nakładek, TortoiseSVN stara się być Dobrym Obywatelem (TM) i ogranicza zastosowanie swoich nakładek by dać szansę innym aplikacjom.
Ponieważ są klienty Tortoise dostępne dla innych systemów kontroli wersji, stworzyliśmy wspólny komponent, który jest odpowiedzialny za pokazywanie ikon nakładek. Szczegóły techniczne nie są ważne, wszystko co musicie wiedzieć, to że ten wspólny element umożliwia wszystkim klientom Tortoise używanie tych samych nakładek, a tym samym ograniczenie do 11 wolnych gniazd nie jest zużywane przez instalację więcej niż jednego klienta Tortoise. Oczywiście jest jedna mała wada: wszystkie klienty Tortoise używają tych samych ikon nakładkek, więc nie można dowiedzieć się z ikony nakładki, jaki system kontroli wersji reprezentuje kopia robocza.
Zwykły, zmodyfikowano i w stanie konfliktu są zawsze wczytywane i widoczne.
Usunięto jest wczytywany jeśli możliwe ale staje się zmodyfikowano jeśli brak wolnych slotów.
Do-odczytu jest wczytywany jeśli możliwe ale staje się zwykły jeśli brak wolnych slotów.
Zablokowany jest wczytywany jeśli możliwe ale staje się zwykły jeśli brak wolnych slotów.
Dodano jest wczytywany jeśli możliwe ale staje się zmodyfikowano jeśli brak wolnych slotów.