( denesb | 2017. 12. 21., cs – 10:34 )

>Egy faék egyszerű a logikája
Pontosan: faék egyszerű logika amire (szerintem) csak faék egyszerű munkamenetet lehet felépíteni.
De hogy fejtsem ki pontosan is:
* Ha SVN repót akarok kell hozzá szerver. Ha kezdek egy hobbi projektet (amiből lehet nem lesz soha semmi jelentős de lehet hogy mégis) akkor kénytelen vagyok beüzemelni egy szervert ehhez. Gittel csak létrehozok egy local repot és később egyetlen parancsal tudok hozzá adni remote szervereket tetszés szerint. A remote szerver lehet akár ugyanazon a gépen egy másik lemezen. De beszéljünk munkáról. Kezdeni akarok egy új repót valami új libnek vagy toolnak ami egyelőre kísérleti. SVN: el kell menni a rendszergazdához és kérni egy új repot. Git: local repo, meg lehet osztani a kollégákkal, ha befut lehet neki új szerver a "felhőbe" on-demand.
* Ha meg akarod osztani a módositásaidat akkor fel kell tedd a központi szerverre, mindeki kénytelen használni. Push based munkamenet. A gittel ez pull based (de a push-based is támogatott). Kitolod a módosításokat egy saját helyre (mondjuk privát fork a githubon) és megosztod a linket a kollégákkal. Akit érdekel lehúzhatja. De ha van ssh hozzáférés akkor ki se kell told sehova, a kolléga lehúzza tőled direkt.
* Branching. Tudom, hogy támogatott de fényévekre van a git féle teljesen erőlködésmentes, villámgyors branchingtól. A git féle branching model támogatja a kísérletezést, semmibe se kerül létrehozni egy új branchot és eldobni egy fél óra/nap/hónap után ha mégse jön be. Az egész két(!) parancs. De ha bejön és csak részlegesen akkor triviális kimazsolázni a jó részeket és eldobni azt ami nem az. Triviális visszamenőleg(!) kitisztítani a kódot és gatyába rázni a commit üzeneteket majd megosztani a tiszta verziót.
* Single point of failure. Tudom, hogy enterprise backup meg minden de a ménkű beüt néha.
* Hatalmas projektek ahol a változások egy fa-alakú maintainer rendszeren keresztül kerülnek be a repoba (á lá Linux). Ezt az SVN egyáltalán nem tudja. De nem kell a projekt hatalmas legyen. A mi cégünknél is maintainer rendszer van és csak egy pár embernek van push joga. A változtatásokat a saját privát repo-nkból osszuk meg a maintainerekkel akik ha tetszik a review után behúzzák. De behúzhatják csak kisérleti jelleggel, hogy lefuttassák a teszteket mielőtt(!!) bekerülne a main repoba ahol mindeki szív ha valami nem megy. Minden teljesen integrált, nem kell semmilyen third party cucc. Hogy oldod meg ezt SVN-nel?

Ezek csak amik hirtelen eszembe jutottak. És ezek nem komplex munkamenetek (abból csak egyet hoztam fel, a Linux projektet), hanem egyszerű dolgok amik nélkül én minden nap egy kicsit bosszankodnák ami egy idő után általános elégedetlenségbe csapna át a munkahelyem iránt.
--
:wq