Vă mulțumim pentru susținere

Care sunt avantajele utilizării SVN peste CVS?

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

Știu că SVN este mai nouă, dar în afară de asta, nu sunt familiarizat cu beneficiile sale.

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

0
adăugat editat

11 răspunsuri

Cartea Subversion are o anexă care detaliază diferențele importante de la CVS, care vă pot ajuta să vă luați decizia. Cele două abordări sunt mai mult sau mai puțin aceeași idee, dar SVN a fost conceput special pentru a stabili defectele de lungă durată în CVS, deci, cel puțin teoretic, SVN va fi întotdeauna cea mai bună alegere.

0
adăugat

Una dintre numeroasele comparații:

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

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

Pro Subversiune:

  • Support for versioned renames/moves (impossible with CVS): Fingolfin, Ender
  • Supports directories natively: It's possible to remove them, and they are versioned: Fingolfin, Ender
  • File properties are versioned; no more "executable bit" hell: Fingolfin
  • Overall revision number makes build versioning and regression testing much easier: Ender, Fingolfin
  • Atomic commits: Fingolfin
  • Intuitive (directory-based) branching and tagging: Fingolfin
  • Easier hook scripts (pre/post commit, etc): SumthinWicked (I use it for Doxygen after commits)
  • Prevents accidental committing of conflicted files: Salty-horse, Fingolfin
  • Support for custom 'diff' command: Fingolfin
  • Offline diffs, and they're instant: sev
0
adăugat
Fingolfin și Ender sunt doar numele persoanelor care fac acest forum: În spatele fiecărui "argument" este o listă de persoane care sunt de acord că acest argument este valabil.
adăugat autor hinneLinks
Ce este un "fingolfin"? Googling acest cuvânt o face doar mai confuză
adăugat autor DuKes0mE

CVS urmărește numai modificările pe bază de fișiere, în timp ce SVN urmărește o întreagă acțiune ca o nouă revizuire, ceea ce înseamnă că este mai ușor să urmăriți istoricul proiectului. Adăugați faptul că toate programele moderne de control al surselor utilizează conceptul de revizuire, astfel încât este mult mai ușor să migrați din SVN decât din CVS.

Există, de asemenea, problema de comitere atomică. În timp ce l-am întâlnit doar o singură dată, este posibil ca 2 persoane care se angajează împreună în CVS să se poată confrunta, pierzând unele date și punând clientul într-un stat inconsistent. Când sunt detectate devreme, aceste probleme nu sunt importante, deoarece datele dvs. sunt încă acolo undeva, dar poate fi o durere într-un mediu stresant.

Și în sfârșit, nu mai sunt multe instrumente dezvoltate în jurul CVS. În timp ce instrumentele noi și strălucitoare precum Git sau Mercurial nu dispun încă de instrumente, SVN are o bază de aplicații destul de mare pe orice sistem.

EDIT 2015: Seriously, this answer is 7 years old now. Forget SVN, go use Git like everyone else!

0
adăugat
Vreau același răspuns pentru git vs subversiune și git vs mercurial
adăugat autor Isaac Rabinovitch

btw: CVSNT acceptă angajamente atomice

0
adăugat

s-ar putea să alegeți să migrați numai ultimul cod din CVS în SVN și să vă înghetați CVS-ul curent CVS. acest lucru va face migrația mai ușoară și s-ar putea să vă construiți, de asemenea, versiunile vechi din vechiul replică CVS.

0
adăugat

Ca cineva care se află în mijlocul trecerii între CVS și SVN (inițial am schimbat toate proiectele noastre cu cvs2svn și apoi am decis că vom trece prin utilizarea numai a svn pe noi proiecte), aici sunt câteva dintre problemele pe care le-am avut.

  • Fuzionarea și ramificarea sunt foarte diferite, iar dacă filiala și fuziona frecvent, cu excepția cazului în care aveți SVN 1.5 care rulează pe serverul dvs., trebuie să știți când sunteți ramificat (acest lucru nu este foarte clar în dialogurile Tortoise SVN). Michael spune că ramificarea și fuzionarea sunt intuitive, aș susține că după utilizarea CVS timp de 10 ani, nu este.
  • În cazul în care executați serverul SVN pe Linux, este posibil să fie greu să obțineți SA pentru a vă deplasa la svn 1.5, ca instalare implicită 1.4.x.
  • Îmbinarea conflictelor nu este la fel de ușoară sau de clară (cel puțin de mine și de colegii mei) în TortoiseSVN, așa cum este în TortoiseCVS. Abordarea celor trei coloane necesită o obișnuință și WinMerge (instrumentul meu de îmbinare preferat) nu face o îmbinare cu trei coloane.
  • Aveți grijă: multe dintre tutorialele online și articolele de revistă pe care le-am citit în mod evident nu se încadrează și nu se îmbină, ar trebui să configurați depozitul principal ca https://svn.yoursvnserver.com/repos/YourProject/Trunk și sucursalele pe https://svn.yoursvnserver.com/repos/YourProject/Branches/BranchX . Puteți să vă curățați dacă începeți repo-urile în locul greșit, dar duce la confuzie.
0
adăugat

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

0
adăugat
Tu, sire, meritați o medalie pentru a spune averea.
adăugat autor altinturk

SVN are 3 avantaje principale față de CVS

  • este mai rapid
  • acceptă versiuni ale fișierelor binare
  • și adaugă comiterea tranzacțională (toate sau nimic)
0
adăugat

Un lucru nu trebuie neglijat este ecosistemul. Am lucrat la un magazin CVSNT și am găsit că din ce în ce mai multe instrumente open source au acceptat implicit SubVersion.

0
adăugat

Voi sublinia sugestia lui Eridius de Git, dar l-aș extinde la celălalt DRCS (Distributed Revision Control System), cum ar fi Mercurial și bazar .

Aceste produse sunt destul de recente, iar nivelul de instrumentare și integrare cu ele pare scăzut în prezent (bazat pe cercetarea mea inițială). Aș spune că sunt cele mai potrivite pentru dezvoltatorii de putere acolo (și aici ;-)).

Pe de altă parte, ce nu face CVS în prezent pentru dvs.? Din întrebarea inițială, nu aveți niciunul, "CVS e de rahat la asta, ce aș putea să folosesc în schimb?"

Trebuie să cântăriți costurile oricărei migrări potențiale împotriva beneficiilor. Pentru un proiect existent, cred că ar fi greu de justificat.

0
adăugat

Păi, câteva lucruri pe care le simt le face minunate.

  1. Combinația creuzetului SVN-Altassian este o metodă extrem de superioară de verificări și verificări de calitate
  2. O mai bună gestionare a conflictelor și a îmbinărilor
  3. Este, evident, mai rapid pentru a lua checkouts, a efectua comitete etc.
  4. Problema de comitere atomică - Este posibil ca 2 persoane care se angajează împreună în CVS să se poată confrunta, pierzând unele date și punând baza de cod într-o stare inconsistentă

Migrarea se poate face cu ușurință în câteva ore folosind cvs2svn.

0
adăugat