Data: 2008-06-25
Tipinė grupėje dirbančio programuotojo priemonė yra SCM'as (šaltinio kodo valdymo sistema). Tiesa sakant, jei net grupėje nedirbate apie tai verta pagalvoti taip pat. Iki šiol (sąlyginai) buvo paplitusios tradicinės centralizuotos sistemos (CVS, Subversion ar dar baisesni variantai). Tokiu atveju visas kodas laikomos viename centriniame serveryje ir žmonės pasidaro tik tam tikrą informacijos kiekį turinčią kopiją savo kompiuteryje. Pvz.: CVS'o atveju tai labai apsunkina darbą su nutolusiais serveriais, subversion ši problema šiek tiek mažesnė, bet kyla kitų problemų. Šiuo metu pradėjo populiarėti decentralizuotos kodo valdymo sistemos (keli verti paminėjimo vardai Git, Bazaar ir Mercurial). Tokiu atveju iš esmės reiškia, kad visą kodo repozitoriją (grubiai kodas + detali pakeitimų istorija) laikai savo kompiuteryje. Čia aš nedetalizuosiu kokie tokių sistemų pranašumai jas lyginant su centralizuotomis, bet jų tikrai netrūksta (ir beje tai ne tik technika, tai ir filosofija). Pradžiai galite tiesiog pažiūrėti Linus Torvalds (Linux autoriaus) kalbą apie Git: Dėl tam tikrų aplinkybių aš pasirinkau Mercurial'ą http://www.selenic.com/mercurial/wiki/
ir į kitus variantus net nežiūrėjau. Git'as jums gali netikti, nes yra
tik linux'inis (nors šiek tiek padirbėjus galima naudoti ir Windows'uose). Apie bazaar'ą apskritai nieko negaliu pasakyti (mačiau
tik problemų sąrašą, kuris dabar jau tikriausiai sutvarkytas). Viena priežasčių kodėl išvis perėjau prie decentralizuotos sistemos yra labai banali - neturėjau interneto tam tikrose situacijose. Mano darbas atrodė maždaug taip:
Beje dirbau prie dviejų skirtingų operacinių sistemų (Ubuntu ir
Windows). Mercurial'as šią problemą išsprendė. Visas darbas su mercurial'u komandinėje eilutėje atrodo maždaug taip: # pasiimame pakeitimus Beje bash'as (kuris yra default'as Ubuntu) labai gražiai su Mercurial'u bendrauja ir jei reikia pridėti ar sucommit'inti tik konkretų failą auto-complete funkcija veikia idealiai (jei parašyčiau šitą sakinį lietuvių kalba manęs niekas nesuprastų). Mercurial visai neblogai veikia su SSH, 0.9.5 turėjo problemą, kad negalima klonuoti repozitorijos į išorinį serverį, bet tai nėra didelė problema. Deja nežinau ar ši problema jau išspręsta. Kadangi dar nežinau kaip viskas vyktų naudojant tai komandoje, tai galiu išvardinti pliusus dirbant tiesiog asmeniškai:
Pažintį su Mercurial'u rekomenduoju pradėti nuo šios nemokamos knygos http://hgbook.red-bean.com/hgbook.html |