Różnica między CVS a SVN

CVS vs SVN

CVS (Concurrent Versions System) i SVN (SubVersioN) to dwa systemy plików do kontroli wersji, które są powszechnie używane przez zespoły współpracujące przy jednym projekcie. Systemy te pozwalają współpracownikom śledzić wprowadzane zmiany i wiedzieć, kto się rozwija i czy gałąź powinna zostać zastosowana do głównego łącza, czy nie. CVS jest znacznie starszy z nich i był standardowym narzędziem do współpracy dla wielu osób. SVN jest znacznie nowszy i wprowadza wiele ulepszeń, aby sprostać wymaganiom większości ludzi.

Prawdopodobnie największą poprawą SVN jest dodanie atomowych zatwierdzeń. Zatwierdzenia atomowe pozwalają na pełne lub całkowite zastosowanie każdego zatwierdzenia. Może to być bardzo przydatne, gdy serwer ulega awarii w środku zatwierdzenia. Za pomocą SVN zatwierdzenie można cofnąć, podczas gdy CVS nie może cofnąć częściowego zatwierdzenia. Kolejnym dodatkiem jest możliwość czystej zmiany nazwy i przenoszenia plików w repozytorium. W przypadku SVN pliki, których nazwy zostały zmienione lub usunięte, nadal zawierają historię zmian i metadane. CVS nie jest również w stanie wprowadzić żadnych nowych zmian do repozytoriów nadrzędnych, podczas gdy można to osiągnąć w SVN za pomocą niektórych narzędzi. Funkcje te po prostu nie są obsługiwane przez CVS lub nie były częścią jego pierwotnego projektu i często powodują wiele problemów dla niektórych osób.

Jeśli chodzi o dostęp do obu za pośrednictwem sieci, oba obsługują zastrzeżone protokoły, które mogą być tunelowane przez połączenie SSH w celu zapewnienia bezpieczeństwa informacji przesyłanych przez sieć. SVN dodaje trochę więcej dzięki WebDAV + DeltaV. Ten protokół jest oparty na HTTP i HTTPS i zapewnia użytkownikom kolejną opcję połączenia z SVN.

Dla większości osób, które dopiero zaczynają od SVN i CVS, SVN jest lepszą i logiczną opcją między nimi. Zapewnia użytkownikowi odpowiedni zestaw funkcji dostosowany do jego potrzeb. Jedynym powodem, aby nadal korzystać z CVS, jest utknięcie w starszym systemie, którego przeniesienie do systemu SVN jest dość trudne.

Streszczenie:
1. SVN jest nowszy i bardziej zaawansowany w porównaniu do znacznie starszego CVS
2. SVN pozwala na ataki atomowe, podczas gdy CVS nie
3. SVN pozwala na zmianę nazwy i przenoszenie, podczas gdy CVS nie
4. SVN pozwala na propagowanie zmian w repozytoriach nadrzędnych, podczas gdy CVS nie
5. SVN obsługuje dwa protokoły sieciowe, podczas gdy CVS obsługuje tylko jeden