Jakie są zalety korzystania z SVN nad CVS?

głosy
56

Moja firma używa CVS jako naszego standardu de facto do kontroli źródła. Jednak słyszałem dużo mówią, że SVN jest lepszy.

Wiem SVN jest nowszy, ale poza tym, jestem zaznajomiony z jego dobrodziejstw.

Co szukam jest dobre, zwięzłe porównanie dwóch systemów, odnotowując wszelkie zalety i wady każdego z nich w środowisku programistycznym Java / Eclipse.

Utwórz 04/08/2008 o 15:06
źródło użytkownik
W innych językach...                            


12 odpowiedzi

głosy
54

CVS śledzi tylko modyfikację na zasadzie plik po pliku, natomiast SVN śledzi cały popełnić jako nowej rewizji, co oznacza, że ​​łatwiej jest śledzić historię swojego projektu. Dodać, że wszystkie nowoczesne oprogramowanie do kontroli źródła używają pojęcia rewizji więc znacznie łatwiej jest przenieść z SVN niż to z CVS.

Istnieje również atomowy commit problem. A ja tylko spotkałem go raz, możliwe jest, że 2 osoby dopuszczającej się razem w CVS może kolidować ze sobą, tracąc niektóre dane i oddanie swojego klienta w niespójnym stanie. Kiedy wykryty wcześnie, problemy te nie są głównym ponieważ dane są wciąż gdzieś tam jest, ale może to być ból w stresującym środowisku.

I wreszcie, nie wiele narzędzi są rozwijane wokół CVS więcej. Chociaż nowe i błyszczące, nowe narzędzia, takie jak Git czy Mercurial zdecydowanie brakuje jeszcze narzędzi, SVN ma dość dużą bazę aplikacji na dowolnym systemie.

EDIT 2015 : Poważnie, to odpowiedź jest 7 lat teraz. Zapomnij SVN, Git iść używać jak każdy inny!

Odpowiedział 04/08/2008 o 15:17
źródło użytkownik

głosy
18

Jednym z wielu porównań:

http://wiki.scummvm.org/index.php/CVS_vs_SVN

Teraz jest to bardzo specyficzne dla tego projektu, ale wiele rzeczy apllies w ogóle.

Pro Subversion:

  • Wsparcie dla wersjonowanymi zmienia nazwę / ruchów (niemożliwe z CVS): Fingolfina Ender
  • Obsługuje natywnie katalogi: To jest możliwe, aby je usunąć i są wersjami: Fingolfin Ender
  • Właściwości plików są wersjami; no more "wykonywalny nieco" piekło: Fingolfin
  • Ogólnie numer wersji build sprawia wersjonowanie i testowanie regresji znacznie łatwiejsze: Ender Fingolfina
  • Atomic zobowiązuje: Fingolfina
  • Intuicyjny (katalog-based) rozgałęzienia i tagowanie: Fingolfin
  • Łatwiejsze skrypty hook (pre / post popełnienia, etc): SumthinWicked (używam go dla Doxygen po zatwierdzeń)
  • Zapobiega przypadkowemu popełnienia skonfliktowanych plików: Salty-konia, Fingolfina
  • Wsparcie Własne polecenie „diff”: Fingolfin
  • Offline dyferencjału, a oni natychmiastowy: sev
Odpowiedział 04/08/2008 o 15:09
źródło użytkownik

głosy
14

SVN ma 3 główne zalety w stosunku do CVS

  • jest szybsze
  • wspiera wersjonowanie plików binarnych
  • i dodaje transakcyjny commit (wszystko albo nic)
Odpowiedział 04/08/2008 o 15:35
źródło użytkownik

głosy
7

W książce Subversion ma załącznik , że szczegóły istotne różnice w porównaniu z CV, które mogą pomóc w podjęciu decyzji. Oba podejścia są mniej więcej ten sam pomysł, ale SVN został specjalnie zaprojektowany, aby naprawić dawna wad w CVS więc, przynajmniej w teorii, SVN zawsze będzie lepszym wyborem.

Odpowiedział 04/08/2008 o 15:14
źródło użytkownik

głosy
4

Jedną rzeczą jest, aby nie przeoczyć ekosystem. Pracowałem w sklepie CVSNT, a ja znajdowałem coraz więcej narzędzi open source wspierane Subversion domyślnie.

Odpowiedział 18/08/2008 o 18:22
źródło użytkownik

głosy
2

Jak ktoś, kto jest w środku przełączania między CVS i SVN (początkowo zmieniliśmy wszystkie nasze projekty z cvs2svn i wtedy postanowił, że będziemy przechodzić przez tylko za pomocą svn na temat nowych projektów), oto niektóre z problemów, jakie mieliśmy.

  • Scalanie i rozgałęzienia są bardzo różne, a jeśli oddział i scalania często, chyba że masz SVN 1.5 uruchomiony na serwerze trzeba wiedzieć, kiedy rozgałęzione (to nie jest jasne, w oknach tortoisesvn). Michael mówi rozgałęzienie i łączenie jest intuicyjny, będę argumentować, że po użyciu CVS przez 10 lat, to nie jest.
  • Jeśli jest uruchomiony serwer SVN na Linuksie, może być trudno uzyskać SA przenieść do SVN 1.5, jako domyślnej instalacji 1.4.x.
  • Scalanie konfliktów nie jest tak proste lub tak oczywiste (przynajmniej dla mnie i moich współpracowników) w TortoiseSVN jak to jest w TortoiseCVS. Trzy podejścia szyba zajmuje trochę przyzwyczaić i WinMerge (moja preferowane narzędzie scalania) nie robi scalanie trzy okienka.
  • Uwaga: wiele samouczki online i artykułów z czasopism czytałem oczywiście nie gałęzi i scalania, należy skonfigurować główne repozytorium jako https://svn.yoursvnserver.com/repos/YourProject/Trunk i gałęzie na https: / /svn.yoursvnserver.com/repos/YourProject/Branches/BranchX . Można oczyścić jeśli zaczniesz swoje repo w niewłaściwym miejscu, ale prowadzi to do nieporozumień.
Odpowiedział 04/09/2008 o 18:44
źródło użytkownik

głosy
2

Będę druga sugestia Eridius' Git, ale ja go rozwinąć do innych DRCs (Rozproszony system kontroli wersji), takie jak Mercurial i bazaru .

Produkty te są dość niedawno, a poziom oprzyrządowania i integracji z nich wydaje się niska w tej chwili (na podstawie moich wstępnych badań). Powiedziałbym, że były one najlepiej przystosowane do power-programistów tam (i tu ;-)).

Z drugiej strony, co nie CVS aktualnie dla Ciebie zrobić? Od początkowego pytania, tak naprawdę nie ma żadnych „CVS ssie na to, co mógłbym użyć zamiast tego?”

Musicie ważyć koszty potencjalnej migracji wobec korzyści. Dla istniejącego projektu, myślę, że byłoby trudne do uzasadnienia.

Odpowiedział 18/08/2008 o 18:04
źródło użytkownik

głosy
1

CVS (Concurrent Versions System) i SVN (Subversion) są dwa systemy kontroli wersji plików, które są powszechnie stosowane przez zespoły, które pracują nad jednym projektem. Systemy te pozwalają współpracownikom, aby śledzić zmiany, które są wykonane i wiemy, kto rozwija który oddział i czy powinna być stosowana do głównego pnia, czy nie. CVS jest znacznie starszy z dwóch i to było standardowe narzędzie współpracy dla wielu ludzi. SVN jest znacznie nowsze i wprowadza wiele ulepszeń, aby sprostać wymaganiom większości ludzi.

Odpowiedział 17/07/2018 o 07:19
źródło użytkownik

głosy
1

btw: CVSNT obsługuje zobowiązuje atomowych

Odpowiedział 18/08/2008 o 17:22
źródło użytkownik

głosy
0

Cóż, jest kilka rzeczy, które sprawia, że ​​czuję svn niesamowite.

  1. SVN-Altassian tygiel kombinacją jest znacznie lepszy sposób przeglądów i kontroli jakości
  2. Lepsze zarządzanie konfliktami i łączy
  3. To oczywiście szybsze podejmowanie kas, wykonując zobowiązuje itp
  4. Atomowy popełnić błąd - Jest możliwe, że 2 osoby dopuszczającej się razem w CVS może kolidować ze sobą, tracąc niektóre dane i oddanie swoją bazę kodu w niespójnym stanie

Migracja może być łatwo zrobić w ciągu kilku godzin, z wykorzystaniem cvs2svn.

Odpowiedział 18/09/2016 o 14:01
źródło użytkownik

głosy
0

można również zdecydować się na migrację tylko najnowszy kod z CVS do SVN i CVS zamrozić bieżące repo. uczyni to łatwiejsze i migracji można także budować swoje wersje starszych w starym CVS repo.

Odpowiedział 08/10/2008 o 17:19
źródło użytkownik

głosy
0

Należy przyjrzeć Git zamiast SVN. Jest to DVCS, który jest niewiarygodnie szybki i bardzo silny. To nie jest tak łatwy w obsłudze jak SVN, ale to poprawa w tym względzie i nie jest to trudne do opanowania.

Odpowiedział 07/08/2008 o 00:09
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more