Care este diferența dintre toate tipurile de control al versiunii?

După ce a fost spus de cel puțin 10 persoane despre SO că controlul versiunii a fost un lucru bun, chiar dacă este doar eu am acum o întrebare followup.

Care este diferența dintre toate tipurile de control al versiunilor și există un ghid despre care cineva știe despre controlul versiunii, care este foarte simplu și ușor de înțeles?

0
fr hi bn
O altă întrebare recentă pe același subiect
adăugat autor Yaakov Ellis, sursa

13 răspunsuri

Se pare că suntem în epoca de aur a controlului versiunii, cu o tona de alegeri, toate având avantajele și dezavantajele lor.

Iată cele pe care le văd cel mai mult:

  • svn - în prezent cea mai populară open source?
  • git - foarte cald din moment ce Linus a trecut la el
  • mercurial - niște oameni inteligenți pe care îi știu că jură pe el
  • cvs - cel pe care tocmai trece de la
  • perforce - imho, cele mai bune caracteristici, dar nu este open source. Licența pentru doi utilizatori este gratuită.
  • sourcesafe vizuale - nu sunt prea mult în lumea Microsoft, deci nu am nici o idee despre asta, în afară de faptul că oamenii ar dori să se ocupe de ea ca pe toate de la Microsoft.
  • sccs - din punct de vedere istoric menționăm acest lucru, stră- gadicul multora dintre cei de mai sus
  • rcs - și bunicul multora dintre cei de mai sus

Recomandarea mea: esti cel mai sigur fie cu git, svn, fie cu forta, din moment ce o multime de oameni le folosesc, sunt cross platforme, au bun guis, poti cumpara carti despre ei etc.

Nu luați în considerare cvs, sccs, rcs, acestea sunt antice.

Cel mai frumos lucru este că, deoarece proiectele dvs. vor fi relativ mici, veți putea muta codul într-un nou sistem odată ce veți fi mai experimentați și veți decide că doriți să lucrați cu un alt sistem.

0
adăugat
@maksimov, am lucrat într-un magazin ClearCase. Mă prefac că nu sa întâmplat niciodată și o nega negativ dacă cineva spune că am făcut-o!
adăugat autor Mark Harrison, sursa
Din nefericire, în timpul carierei profesionale, este aproape inevitabil să ne întâlnim cu ClearCase și CA SCM. Oamenii normali nu vor alege niciodată aceste lucruri pentru propriile lor proiecte.
adăugat autor maksimov, sursa

Controlul versiunii este esențial pentru dezvoltare, chiar dacă lucrați singur pentru că te protejează de tine însuți. Dacă faceți o greșeală, este simplu să vă răzgândiți la o versiune anterioară a codului pe care o cunoașteți. Acest lucru vă eliberează, de asemenea, să explorați și să experimentați cu codul dvs., deoarece sunteți liberi să vă faceți griji dacă ceea ce faceți este reversibil sau nu. Există două ramuri majore ale sistemelor de control al versiunilor (VCS), centralizate și distribuite.

Centralized VCS are based on using a central server, where everyone "checks out" a project, works on it, and "commits" their changes back to the server for anybody else to use. The major Centralized VCS are CVS and SVN. Both have been heavily criticized because "merging" "branches" is extremely painful with them. [TODO: write explanation on what branches are and why merging is hard with CVS & SVN]

VCS distribuite permite fiecăruia să aibă propriul server, unde puteți să "trageți" modificările de la alte persoane și să "împingeți" modificările la un server. Cele mai comune VCS distribuite sunt Git și Mercurial. [TODO: scrie mai mult pe Distributed VCS]

Dacă lucrați la un proiect, recomand foarte mult utilizarea unui VCS distribuit. Recomand Git, pentru că este rapid, dar a fost criticat ca fiind prea greu de folosit. Dacă nu vă deranjează să utilizați un produs comercial BitKeeper se presupune că este ușor de utilizat.

0
adăugat

Aș începe cu:

După ce ați citit-o, descărcați și instalați SVN , TortoiseSVN și schimba primele câteva capitole ale rezervați și începeți.

0
adăugat

Dacă lucrați singuri într-un mediu Windows, atunci licența unui singur utilizator pentru Vaultul SourceGear este gratuit.

0
adăugat
0
adăugat

Noi folosim și ne place Mercurial . Urmează un model distribuit - elimină o parte din sentimentul că trebuie să lucreze în "check-in". Mozilla a sa mutat la Mercurial , ceea ce este un semn bun că nu va dispărea oricând în curând. Un con, în opinia mea, este că nu există un GUI foarte bun pentru asta. Dacă sunteți confortabil cu linia de comandă, totuși, este destul de la îndemână.

Mercurial Documentation Unofficial Manual

0
adăugat
Proiectul OpenJDK a trecut de asemenea și limba Python se află în proces de trecere la Mercurial.
adăugat autor Martin Geisler, sursa

Răspunsul simplu este că vă place Undo butoane? Răspunsul este, desigur, da, pentru că noi, ca om, facem greșeli tot timpul.

Ca programatori, adesea cazul său, deși poate dura câteva ore de testare, modificări de cod, suprascriere, ștergeri, mutare de fișiere și redenumire înainte de a elabora metoda pe care încercăm să o folosim pentru a rezolva o problemă este în întregime greșită și codul este mai rupt decât atunci când am început.

Ca atare, Controlul Surselor este un buton Anulare masivă pentru a reveni la un timp mai devreme când iarba a fost verde, iar mâncarea este abundentă. Și nu numai că, din cauza modului în care funcționează sursa de control, puteți păstra în continuare o copie a codului dvs. rupt, în cazul în care câteva săptămâni în jos pe linia pe care doriți să o referiți din nou și cherry alege orice idei bune care au ieșit din ea .

I personally (though it could be called overkill) use a free Single user license version of Source Gear Fortress (which is their Vault source control product with bug tracking features). I find the UI really simple to use, it supports both the checkout > edit > checkin model and the edit > merge > commit model. It can be a little tricky to set up though, requiring you to run a local copy of ISS and SQL server. You might want to try a smaller program, like those recommended by other answers here. See what you like and what you can afford.

0
adăugat

răspunsul la altă întrebare se aplică și aici, cel mai important

Jon Works a spus:
  Cel mai important lucru despre controlul versiunii este:

     

începeți să-l folosiți

Răspunsul lui merge mai detaliat și nu vreau să fiu acuzat de plagieri, așa că aruncă o privire.

0
adăugat

Vezi și această întrebare privind SO:

0
adăugat

Marcu a spus:

git - foarte cald din moment ce Linus a trecut la el

Vreau doar să subliniez că Linus nu a trecut la el, Linus a scris .

0
adăugat
Ei bine, el a trecut de la utilizarea Bitkeeper la scris și folosind git.
adăugat autor Craig McQueen, sursa

Pentru toți începând cu controlul versiunii:

Vă rugăm să nu utilizați git (sau hg sau bzr) din cauza hype

Utilizați git (sau hg sau bzr) deoarece acestea sunt instrumente mai bune pentru gestionarea codului sursă decât SVN.

Am folosit SVN-ul pentru câțiva ani la lucru și am trecut de la GIT acum 6 luni. Fără a învăța mai întâi SVN, aș fi pierdut în totalitate atunci când este vorba de utilizarea unui DVCS.

Pentru persoanele care încep doar cu controlul versiunii:

  • Începeți prin descărcarea SVN
  • Aflați de ce aveți nevoie de controlul versiunii
  • Aflați cum să comiteți, să finalizați comanda, sucursala
  • Aflați de ce îmbinarea în SVN este o astfel de durere

Apoi treceți la un DVCS și învățați:

  • How to clone/branch/commit
  • How easy it is to merge your branches back (go branch crazy!)
  • How easy it is to rewrite commit history and keep your branches
    up to date with the main line (git rebase -i, )
  • How to publish your changes so others can benefit

tldr; mulţimea:

Începeți cu SVN și aflați elementele de bază, apoi treceți la un DVCS.

0
adăugat
Hi @Will și @Spoike, nu pot spune sigur dacă controlul versiunii distribuite este mai greu de învățat pentru un utilizator nou decât cel centralizat. Cu toate acestea, pot compara tranzitiile mele de la Source Safe la CVS și de acolo la SVN cu trecerea mea de la SVN la Bazar. Când treceți de la un instrument centralizat la altul, ele au în mare parte aceleași caracteristici cu o altă interfață (sperăm că am îmbunătățit). Când vă deplasați la un instrument distribuit, există o schimbare fundamentală în modul în care este utilizat depozitul și în ce arată fluxul de lucru. Mi sa părut mai greu să
adăugat autor Don Kirkby, sursa
@Will Robertson: Sunt de acord, nu am găsit niciodată DVCS mai dificil decât CVCS. Dimpotrivă, a fost mai ușor să groupe. De exemplu. Este mult mai ușor să configurați un repo în git în timp ce svn are un proces cu mai multe etape doar pentru a urma trunchiurile / ramificațiile / etichetele convenției, chiar dacă este local pe calculatorul propriu.
adăugat autor Spoike, sursa
Eu nu primesc întreaga "DVCS este mai greu" meme. În încarnările lor de bază, hg și bzr sunt cel puțin la fel de ușor de folosit ca svn; de fapt, aș fi vrut să fie mai ușor să ruleze git init decât să instaleze cumva un server svn.
adăugat autor Will Robertson, sursa

Doar începeți să utilizați controlul sursă, indiferent de tipul pe care îl utilizați. Ceea ce folosiți nu contează; utilizarea lui este importantă

0
adăugat

Ca oricine altcineva, SC depinde într-adevăr de nevoile dvs., de bugetul dvs., de mediul dvs. etc.

La rădăcină, controlul sursei este conceput pentru a oferi un depozit central al întregului cod și pentru a urmări cine a făcut ce sa întâmplat când. Ar trebui să existe o istorie completă și puteți obține produse care fac modificări complete, audit, control acces, și mai departe ...

Fiecare produs care este acolo începe să strălucească (ca să spunem așa) atunci când începeți să vă uitați la modul în care doriți sau trebuie să încorporați SC în mediul dvs. (fie că este vorba de codul dvs. personal și documente sau de o corporație mare). Și pe măsură ce oamenii le folosesc, descoperă că instrumentul are limitări, așa că oamenii scriu altele noi. SVN sa născut din limitele pe care creatorii l-au văzut cu CVS. Linus a vrut ceva mai bun pentru kernelul Linux, deci acum avem git .

Aș spune să începeți să folosiți unul (ceva asemănător SVN, care este foarte popular și destul de ușor de utilizat) și să vedeți cum merge. Odată cu trecerea timpului, puteți găsi că aveți nevoie de alte funcționalități sau aveți nevoie de interfață cu alte sisteme, deci este posibil să aveți nevoie de SourceSafe sau de un alt instrument.

Sursa de control este întotdeauna importantă și în timp ce puteți renunța la versiuni de redimensionare manuală a fișierelor PSD sau la ceva ce lucrați pe ele, veți uita să rulați acel script batch o dată sau de două ori sau probabil să uitați care număr a mers cu care schimbare. În acest caz, majoritatea acestor instrumente SC vă pot ajuta (atâta timp cât faceți check-in / check-out).

0
adăugat