Numeracja rewizji jest nieco inna

W CVS numer rewizji powiązany jest z plikiem. Takie zachowanie spowodowane jest faktem przechowywania danych w plikach RCS; każdy plik posiada w repozytorium odpowiadający sobie plik RCS przez co repozytorium ma taką samą strukturę jak twój projekt.

W Subversion repozytorium wygląda jak pojedynczy system plików. Każda zmiana powoduje powstanie nowego drzewa; w ogólności repozytorium jest tablicą drzew. Każde z tych drzew posiada własny numer rewizji. Kiedy ktoś ma na myśli „rewizję 54”, to tak naprawdę chodzi mu o drzewo oznaczone tym numerem (oraz pośrednio o to, jak wygląda system plików po 54-tej zmianie).

Technicznie rzecz biorąc, niepoprawnością jest odnoszenie się do „rewizji 5-tej pliku foo.c.” Poprawniej jest mówić o „stanie plikufoo.c w rewizji 5.” Poza tym uważaj na założenia odnoszące się do ewolucji pliku. W CVSie rewizja 5 pliku foo.c jest zawsze inna niż szósta. W Subversion najprawdopodobniej plik foo.c nie uległ zmianie podczas przechodzenia z rewizji 5 do 6.

Podobnie, w CVS tag lub gałąź jest komentarzem do pliku lub do informacji wersji dla tego jednego pliku, podczas gdy w Subversion jest kopią całego drzewa (konwencją jest umieszczanie gałęzi w katalogu /branches a tagów w /tags, które są katalogami głównymi repozytorium, obok katalogu /trunk). Ujmując repozytorium całościowo, wiele różnych wersji każdego pliku może być widocznych: najnowsza wersja w każdej z gałęzi, każda wersja opatrzona tagiem oraz oczywiście najnowsza wersja w samym folderze /trunk. Ściślej zatem rzecz ujmując, często mówi się o „pliku foo.c widocznym w /branches/REL1 w rewizji 5.

Więcej na ten temat dowiesz się w rozdziale „Wersje (Revisions)”.