Tema: Re: Ar yra koks SVN tools'as
Autorius: Laimis
Data: 2012-10-15 12:55:56
Dainius rašė:

> Va butent, kad skirtumo 90% profesionaliu developeriu (tie kurie to
> duona valgo) nera. Aisku skamba graziai, kai galiu savo pakeitimus
> nupushinti i savo grupioko repozitorija, su kuriuom darom viena bendra
> labora, ir nereikai rupintis tureti kazkokio centrinio. Bet realiuose
> projetuose, kiek taip daro? O kur vartotoju kontrole? Isivaizduoju koks

Galiu atsakyti pasiremdamas neprastai reprezentatyvia, Eclipse daryta 
apklausa. Per tris metus (2009-2011) DVCS (git) naudojimas išaugo 6 (!) 
kartus. Per paskutinius metus *dvigubai* ir dabar DVCS tenka ~30+%. Net 
jei DVCS tenka tik trečdalis, tai per ateinančius metus, dėl tokios 
dinamikos aiškiai prognozuotinas svn lyderio pozicijų praradimas. Kur 
tuomet bus (ir dabar yra) tavo 90% profesionalių projektų, jei daugiau, 
kaip 50% profesionalių projektų bus numigravę (jau ir dabar yra) į DVCS.
http://www.infoq.com/news/2012/06/eclipse-survey

Realiuose projektuose taip ir daroma. Tu tiesiog pabandyk, kad 
suprastum, kaip tai veikia ir ką tai reiškia. Kas yra vartotojų 
kontrolė, tai aš nežinau. Jei tai susiveda į užrakintas serverinės 
duris, kuriame sukasi centrinė svn repozitorija ir nakčiai ištrauktą 
interneto kabelį, tai tuomet lygiai tą patį galima padaryti ir DVCS atveju.


> butu patenkintas zmogelis atsakingas uz merginima, kai reiktu is 20
> zmoniu susirankioti pakeitimus, o gavus konflikta dar ir paspelioti,
> kuris cia turetu buti paskutinis.

Merge'inimas ir konfliktų sprendimas palyginus su svn — diena ir naktis.
Būtent svn'e tu turi spėlioti ir gaudytis, kas čia yra paskutinis ir iš 
kur atkeliavo, o DVCS'e gauni visą grafą (DAG — directed acyclic graph) 
ir aiškią struktūrą, kas iš kokių šakų merge'inama. Visuomet turi 
galimybę matyti visas merge'inamas versijas (jų istorijas, 
sąsajas-raidą, t.y. visą ryšių grandinę, pradedant tėvinėmis 
revizijomis, baigiant bendra ištaka) iki merge'inimo ir po jo, tad 
konfliktų sprendimas yra tiesiog sunkiai palyginamas. Branch'ai ir 
merge'inimas yra kasdienio DVCS darbo uždavinys, tad ši funkcija yra 
viena iš esminių, labiausiai išvystytų, išspręstų.
Tuo tarpu kiek painesniam merge'inimui svn'e reikia kurį laiką kauptis, 
o po jo, sako, norisi nusigerti:
http://blog.teamtreehouse.com/why-you-should-switch-from-subversion-to-git

>
> As tikrai nesakau, kad git blogai, pagrinde ji ir naudojam (prie xkcd
> dar gali prideti ir http://dilbert.com/strips/comic/2006-10-07/). Jei
> gerai pameni git'as buvo sukurtas, kad padetu Linusui, bet zinoma, viska
> ka jis pasako yra negincijama tiesa.

Jei gerai pamenu, tai aš kalbą pradėjau nuo DVCS, tad ir be git'o yra 
bent keletas kitų, vertų dėmesio, alternatyvų (iš kokio tuzino). Šia 
prasme Linus'as (git'as) ir DVCS nėra susiję kilme, nebent tik tuo, kad 
Linus'o dėka buvo sukurta ir labiausiai išpopuliarinta konkreti DVCS 
inkarnacija — git.