Care sunt avantajele utilizării SVN peste CVS?

voturi
56

Compania mea utilizează CVS ca standardul nostru de facto pentru controlul sursei. Cu toate acestea, am auzit o mulțime de oameni spun că SVN este mai bine.

Știu că SVN este mai nou, dar altele decât că, eu sunt familiarizat cu beneficiile sale.

Ceea ce caut este un bun, comparație succintă a celor două sisteme, observând avantaje sau dezavantaje ale fiecărui într-un mediu de dezvoltare Java / Eclipse.

Întrebat 04/08/2008 la 15:06
sursa de către utilizator
În alte limbi...                            


12 răspunsuri

voturi
54

CVS urmărește numai modificare pe bază de fișier de fișier, în timp ce SVN urmărește un întreg comite ca o nouă revizuire, ceea ce înseamnă că este mai ușor de urmărit istoria proiectului. Se adaugă faptul că toate software-ul modern de control sursă utilizează conceptul de revizuire, astfel că este mult mai ușor să migreze din SVN decât este din CVS.

Există, de asemenea atomic comitere problemă. În timp ce l-am întâlnit doar o dată, este posibil ca 2 persoane care săvârșesc împreună în CVS pot intra în conflict reciproc, pierde unele date și pune clientul într-o stare inconsistentă. Atunci când sunt depistate precoce, aceste probleme nu sunt majore, deoarece datele dvs. este încă acolo, undeva, dar poate fi o durere intr-un mediu stresant.

Și, în sfârșit, nu mai multe instrumente sunt mai dezvoltate în jurul CVS. În timp ce noi instrumente și strălucitoare, noi, cum ar fi Git sau Mercurial cu siguranta lipsesc încă instrumente, SVN are o bază de cerere destul de mare pe orice sistem.

EDIT 2015 : Serios, acest răspuns este de 7 ani acum. Uita SVN, du - te folosesc Git ca toți ceilalți!

Publicat 04/08/2008 la 15:17
sursa de către utilizator

voturi
18

Una dintre cele mai multe comparații:

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

Acum, acest lucru este foarte specifică acestui proiect, dar o mulțime de lucruri apllies în general.

Pro Subversion:

  • Suport pentru redenumește / mișcări versionat (imposibil cu CVS): Fingolfin, Ender
  • Suporta directoare nativ: Este posibil pentru a le elimina, iar acestea sunt versionate: Fingolfin, Ender
  • Proprietățile de fișiere sunt verionate; nu mai „executabil bit“ iad: Fingolfin
  • Numărul total de Cenzori construi versiuni și testarea de regresie mult mai ușor: Ender, Fingolfin
  • Atomic se angajează: Fingolfin
  • Intuitiv (director-based) ramificare și etichetarea: Fingolfin
  • script-uri cârlig mai ușor (pre / post comite, etc): SumthinWicked (am folosi pentru Doxygen după comiterile)
  • Previne comiterea accidentală a fișierelor aflate în conflict: Salty-cal, Fingolfin
  • Suport pentru comanda personalizat „dif“: Fingolfin
  • diff offline și sunt instantanee: Sev
Publicat 04/08/2008 la 15:09
sursa de către utilizator

voturi
14

SVN are 3 avantaje principale de peste CVS

  • este mai rapid
  • suportă versionarea fișiere binare
  • și adaugă comite tranzacțional (totul sau nimic)
Publicat 04/08/2008 la 15:35
sursa de către utilizator

voturi
7

Cartea Subversion are o anexă care detaliază diferențe importante de la CVS, care ar putea ajuta să luați decizia ta. Cele două abordări sunt mai mult sau mai puțin aceeași idee , dar SVN a fost proiectat special pentru a repara defecte de lungă durată în CVS astfel încât, în teorie cel puțin, SVN va fi întotdeauna cea mai bună alegere.

Publicat 04/08/2008 la 15:14
sursa de către utilizator

voturi
4

Un lucru nu trece cu vederea este ecosistem. Am lucrat la un magazin CVSNT, și am fost găsirea de instrumente mai multe și mai open source suportate subversiune în mod implicit.

Publicat 18/08/2008 la 18:22
sursa de către utilizator

voturi
2

Ca cineva care se află în mijlocul de comutare între CVS si SVN (initial am pornit toate proiectele noastre cu cvs2svn și apoi a decis că vom tranziție folosind doar SVN pe proiecte noi), aici sunt unele dintre problemele pe care le-am avut.

  • Fuzionarea și ramificare sunt foarte diferite, și, dacă ramifica și merge frecvent, dacă nu aveți SVN 1.5 rulează pe serverul dumneavoastră trebuie să știe când ramificata (acest lucru nu este foarte clar în dialoguri Tortoise SVN). Michael spune ramificarea și fuzionarea este intuitiv, aș argumenta că după utilizarea CVS timp de 10 de ani, nu este.
  • În cazul în care rulează aceeași server SVN pe Linux, acesta poate fi greu pentru a obține dvs. SA să se mute la SVN 1.5, ca implicit a instala 1.4.x.
  • Fuzionarea conflictelor nu este aproape la fel de ușor sau la fel de clar (cel puțin pentru mine și colegii mei), în TortoiseSVN așa cum este în TortoiseCVS. Cele trei abordare panou ia unele Noțiuni de bază utilizate pentru a și WinMerge (instrumentul meu preferat îmbinare) nu face o îmbinare cu trei panouri.
  • Feriți - vă: multe dintre tutoriale online și articole din reviste am citit , evident , nu se ramifica și de îmbinare, ar trebui să configurați depozitul principal ca https://svn.yoursvnserver.com/repos/YourProject/Trunk și ramuri pe https: / /svn.yoursvnserver.com/repos/YourProject/Branches/BranchX . Puteți curăța dacă începeți operațiunile repo dvs. în locul nepotrivit, dar duce la confuzii.
Publicat 04/09/2008 la 18:44
sursa de către utilizator

voturi
2

Am voi doua sugestie a Git Eridius', dar aș extinde la alte DRCS (Sistem de Control Distribuit de revizuire) , cum ar fi Mercurial și Bazaar .

Aceste produse sunt destul de recente, iar nivelul de scule și de integrare cu ei pare scăzut în acest moment (în funcție de cercetarea mea inițială). Aș spune că sunt cele mai potrivite pentru putere-dezvoltatorii acolo (și aici ;-)).

Pe de altă parte, ceea ce nu CVS face în prezent pentru tine? De la întrebarea inițială, nu au nici „CVS suge la asta, ce aș putea folosi în schimb?“

Ai cântărește Trebuie sus costurile oricărei migrației potențiale în raport cu beneficiile. Pentru un proiect existent, cred că ar fi greu de justificat.

Publicat 18/08/2008 la 18:04
sursa de către utilizator

voturi
1

CVS (Concurrent Versions System) și SVN (Subversion) sunt două sisteme de fișiere de control al versiunii care sunt utilizate popular de echipe, care colaborează la un singur proiect. Aceste sisteme permit colaboratorilor să țină evidența modificărilor care sunt făcute și știu cine este în curs de dezvoltare, care și dacă o sucursală ar trebui să fie aplicată pe trunchiul principal sau nu. CVS este mult mai veche a doua și a fost instrument standard de colaborare pentru o mulțime de oameni. SVN este mult mai nou și introduce o mulțime de îmbunătățiri care să răspundă cerințelor celor mai mulți oameni.

Publicat 17/07/2018 la 07:19
sursa de către utilizator

voturi
1

BTW: CVSNT sprijină comiterile atomice

Publicat 18/08/2008 la 17:22
sursa de către utilizator

voturi
0

Ei bine, câteva lucruri care mă simt minunat face SVN.

  1. Combinația creuzet SVN-Altassian este o metodă mult superioară de recenzii și controale de calitate
  2. O mai bună gestionare a conflictelor și se reîntâlnesc
  3. Este evident mai rapid pentru a lua checkouts, efectuarea comiterilor etc.
  4. Problema comite atomică - Este posibil ca 2 persoane care săvârșesc împreună în CVS pot intra în conflict reciproc, pierde unele date și punerea bazei de cod într-o stare inconsistentă

Migrația poate fi ușor de realizat în câteva ore folosind cvs2svn.

Publicat 18/09/2016 la 14:01
sursa de către utilizator

voturi
0

ați putea alege, de asemenea, să migreze doar cele mai recente codul din CVS în SVN și să înghețe repo CVS curent. acest lucru va face mai ușor migrația și s-ar putea construi, de asemenea, comunicate de vechile în vechiul repo CVS.

Publicat 08/10/2008 la 17:19
sursa de către utilizator

voturi
0

Ar trebui să aruncăm o privire la Git în loc de SVN. Este un DVC care este aprins rapid și foarte puternic. Nu e la fel de ușor de utilizat ca SVN, dar este îmbunătățirea în această privință, și nu este greu de învățat.

Publicat 07/08/2008 la 00:09
sursa de către utilizator

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