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