Co sprawia, że TortoiseSVN jest takim dobrym klientem Subversion? Oto krótka lista cech.
TortoiseSVN bezproblemowo integruje się z powłoką systemu Windows (np. eksploratorem). Oznacza to pracę z narzędziami, które są już znane. Nie trzeba przechodzić do innych aplikacji za każdym razem, gdy trzeba skorzystać z funkcji kontroli wersji.
I nie jesteście ograniczeni do korzystania z eksploratora Windows, menu kontekstowe TortoiseSVN działa w wielu innych menedżerach plików, a także oknie dialogowym Plik/Otwórz, który jest wspólny dla większości standardowych aplikacji Windows. Należy jednak pamiętać, że TortoiseSVN jest opracowany docelowo jako rozszerzenie eksploratora Windows. Możliwe jest zatem, że w innych aplikacjach integracja nie jest tak pełna i np. nie są pokazywane nakładki ikon.
Status każdego z wersjonowanych plików i folderów jest wskazywany przez małe nakładki na ikony. W ten sposób można od razu sprawdzić, jaki jest status kopii roboczej.
Kiedy wyświetla się lista zmian pliku lub folderu, można kliknąć na wersję aby zobaczyć komentarze do tego zatwierdzenia. Można także zobaczyć listę zmienionych plików - wystarczy dwukrotnie kliknąć na plik, aby sprawdzić dokładnie co się zmieniło.
Okno dialogowe zatwierdzenia zawiera wszystkie elementy, które zostaną dołaczone do zatwierdzenia, a każdy element posiada pole wyboru, dzięki któremu można wybrać, które elementy mają zostać uwzględnione. Niewersjonowane pliki mogą być również wymienione na wypadek, gdy zapomniało się dodać do kontroli wersji nowy plik.
Wszystkie polecenia Subversion są dostępne z menu kontekstowego eksploratora. TortoiseSVN dodaje swoje własne drzewo podmenu.
Ponieważ TortoiseSVN jest klientem Subversion, chcielibyśmy pokazać kilka cech samego Subversion:
CVS śledzi tylko historię pojedynczych plików, zaś Subversion realizuje „wirtualny” wersjonowany system plików, który śledzi zmiany w czasie całego drzewa katalogów. Wersjonowane są pliki i katalogi. W rezultacie mamy prawdziwe polecenia move i copy dotyczące plików i katalogów po stronie klienta.
Zatwierdzenie albo trafia do repozytorium w całości, albo wcale. Pozwala to programistom na wprowadzanie i zatwierdzanie zmian w logicznych kawałkach.
Każdy plik i katalog posiada dołączony niewidoczny zestaw „atrybutów”. Możesz wymyślić i zapisać dowolną parę klucz/wartość. Atrybuty są wersjonowane w czasie, podobnie jak zawartość pliku.
Subversion posiada abstrakcyjną koncepcję dostępu do repozytorium, co ułatwia ludziom realizację nowych mechanizmów sieci. „Zaawansowany” serwer sieciowy Subversion jest modułem serwera WWW Apache, który posługuje się wariantem HTTP o nazwie WebDAV/DeltaV. Daje to Subversion dużą przewagę w zakresie stabilności i interoperacyjności oraz oferuje gratis szereg kluczowych funkcji: uwierzytelnianie, autoryzacja, kompresji przesyłania i przeglądania repozytorium, itd.Dostępny jest również mniejszy, samodzielny serwer Subversion. Ten serwer używa niestandardowego protokołu, który może być łatwo tunelowany po ssh.
Subversion określa różnice plików przy użyciu algorytmu binarnego różnicowania, który działa tak samo zarówno dla plików tekstowych (zrozumiały dla człowieka) i binarnych (niezrozumiałych). Oba typy plików są przechowywane w repozytorium w postaci skompresowanej, a różnice przesyłane są w sieci w obu kierunkach.
Koszt odgałęziania i etykietowania nie musi być proporcjonalny do wielkości projektu. Subversion tworzy gałęzie i etykiety przez proste skopiowanie projektu, za pomocą mechanizmu podobnego do twardego dowiązania. Stąd te czynności zabierają jedynie niewielką, stałą ilość czasu i bardzo mało miejsca w repozytorium.