CVS vs. SVN vs. inne narzędzia VCS

post_img

Wiele firm informatycznych staje przed wyborem systemu kontroli wersji. Przedstawiamy porównanie kilku najpopularniejszych narzędzi w tej dziedzinie: CVS, SVN, VSS, Bazaar, Mercurial i Perforce.

Tabela porównawcza

Cecha CVS SVN – Subversion VSS
Format
repozytorium
Pliki RCS
Prosty backup
Intuicyjna struktura
Możliwość ręcznych poprawek
BerkleyDB lub pliki binarne
Większe bezpieczeństwo
Potencjalne źródło problemów
Pliki o nierozpoznawalnych nazwach, np. abaaaaa.aaa
3-krotnie większe od CVS
Szybkość
Stabilność
Skalowalność
Unicode
Tags
& Branches
Szybkie tworzenie gałęzi i znaczników
Proste tworzenie branchy
Atomowe commity
Wsparcie
refactoringu
Wersjonowane przeniesienia
Wersjonowane zmiany nazwy
Wersjonowanie właściwości pliku (uprawnienia, atrybuty, executable, itp)
Wersjonowane foldery
Metadane Można dodawać różne atrybuty do każdego pliku
Hooki
(pre, post)
Możliwe Prostsze
Zabezpieczenie przed
przypadkowym commitem
konfliktującego pliku
Pliki binarne Brak diffa
Rollback repozytorium workaround
Wewnętrzna
architektura
i kod
Brak dostępu do źródeł
Darmowe Bundled with Visual Studio, $549 per full version
Możliwość
migracji z CVS
z historią
cvs2svn – migracja przy pomocy 1 komendy
vss2svn
converter to TFS
Możliwość
skopiowania
całego
repozytorium
Kopiowanie całego folderu link link
Dostępność poprzez Web Wymaga dodatkowych narzędzi
Agregacja modułów link VSS share
Dokumentacja,
powszechność
To avoid
Why Not VSS
SVN vs VSS
SVN vs VSS
Nie używane nawet w Microsofcie.
Projekt rozwijany Stabilny, ale nie rozwijany Nie rozwijany od wielu lat
Apache
Kontrola praw dostępu Ograniczona (pre-commit hooks) J.w. (WebDAV per directory)
link
Uprawnienia per-projekt (read, write, delete, destroy) mogą być przydzielane do konkretnych użytkowników
Konta domenowe link link Dopiero w Team Foundation Server
Śledzenie historii linii kodu Cvs annotate Svn blame
Blokowanie pliku Możliwe dla konkretnych plików
Kopiowanie plików i folderów Niemożliwe Szybkie
Łatwość instalacji ——————————-
——————————-
Integracja z Eclipse Dostępne razem z Eclipse Bardzo podobne do CVS
pluginy: subclipse subversive
Visual Studio ankhsvn
PowerBuilder link PBSCC Pushok link
Merge tracking
Opisy commitów Przy każdej zmianie Przy całym commicie Przy każdym pliku
Zbiór komend
Fisheye
Bamboo
Hudson
CruiseControl
Windows
Linux
VNC / VPN
SCC pushok pushok Nie dot.
Administrowanie Konsola + cvsgui Konsola + web-based TFSAdmin
Powiadomienia e-mail link link sourcevizor

Źródła

http://en.wikipedia.org/wiki/Comparison_of_revision_control_software#cite_note-22
CVS vs Subversion — Version control systems comparison
Polarion-SubversionDataSheet.pdf (Obiekt application/pdf)

Inne narzędzia

Bazaar i Mercurial są nowszymi systemami, które reprezentują podejście do kontroli wersji w sposób rozproszony.
Rozproszony SCM oferuje praktyczne korzyści w porównaniu z podejściem scentralizowanym.
Jest jednak wątpliwe, czy rozproszone narzędzia oferują bardziej zaawansowany zestaw operacji.
Narzędzia rozproszone nie mają takiej bazy użytkowników, jak CVS i Subversion.

Bazaar i Mercurial to innowacyjne, elastyczne i przemyślane narzędzia. Z tej dwójki Bazaar jest prostszy w użyciu. Bazaar może być również używany w połączeniu z centralnym repozytorium, co pozwala na połączenie tych dwóch podejść.

Perforce (p4) oferuje klienta graficznego, p4v, który oferuje bardzo szerokie możliwości. Jest przejrzysty, dobrze zorganizowany i posiada takie funkcje, jak: diff, historia pliku i mere’owanie plików. p4 posiada także plugin do CodeWarrior. Dobrze współpracuje z plikami specyficznymi dla Maca. Praca z p4 składa się z 3 kroków: edycja, zmiana i commit. Znaczy to, że zanim będzie możliwa zmiana pliku, należy przeprowadzić operację „check out”. To jednak powoduje problemy przy pracy w trybie offline.
Why Perforce Is No Good.


Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

2 komentarzy do “CVS vs. SVN vs. inne narzędzia VCS

  • Michał Gołuński

    „Narzędzia rozproszone nie mają takiej bazy użytkowników, jak CVS i Subversion.”

    Tutaj małe sprostowanie z mojej strony – rozproszone systemy kontroli wersji w ostatnim czasie zbierają gigantyczną bazę użytkowników i to w ważnych projektach, przykładowo Linux Kernel używa Git’a (najbardziej znanego przedstawiciela DVCS o którym nie wspomniałeś). Podobnie inne duże projekty się przestawiają na rozproszone systemy kontroli.

    Dalej: dlaczego w łatwości instalacji Subversion jest /-? Instalowałem ten typ repozytorium kilka razy i zawsze było to bardzo prostą operacją (zaciągnąć binarki, ustawić autostart svnserve, dodać repozytoria poprzez svnadmin). Chyba że chodzi o stronę klienta, ale tutaj też nie ma żadnych problemów (TortoiseSVN dla Windows, AnkhSVN dla Visual Studio, Subclipse dla Eclipse…). Proste.

  • Łukasz Muchlado

    Od jakiegoś czasu korzystam z rozproszonych systemów SCM (przede wszystkim z pominiętego w artykule Git-a oraz tylko wspomnianego Mercurial-a) i uważam że przede wszystkim one powinny być brane pod uwagę przy wyborze systemu kontroli wersji. Co za tym idzie głównie one powinny być przedmiotem takiego artykułu.

    Tabela porównawcza, aby być pomocną przy wyborze systemu SCM, powinna zawierać:
    Git, Mercurial, Bazaar, SVN – historycznego CVS-a czy VSS-a pomijając milczeniem.

    P.S. Bojącym się systemów rozproszonych polecam chociaż krótką pracę z Git-em i zapoznanie się z http://whygitisbetterthanx.com/