Gittel konnyebb az elet

Talan meg emlekeztek a FreeBSD Ports Tinderbox es a Subversion hazasitasara tett kiserletemre. Akkor elegge bizakodoan zartam a bejegyzest es kivancsian vartam a tapasztalatokat. Nos, azota szereztem is valamennyit, ezekrol szeretnek most okulasra beszamolni.

Roviden ugy tudnam osszegezni, hogy a Subversion hihetetlenul lassu, egyszeruen lehetetlenne teszi a teljes portfat (kb. 110 000 allomanyt) erinto merge-ok (es ezaltal a ,,gyari'' portfa valtozasainak rendszeres befesulesenek) hatekony elvegzeset. A felhasznalokhoz tartozo branch-ek megszulese is tenyleg tobb mint egy ora, ami szinten kellemetlen meg akkor is, ha ritkan kell csinalni. Legalabb most mar ertem, mi tart olyan sokaig a KDE, GNOME es Xorg update-ek elokesziteseben.

Egy ismerosom tanacsara ezert a Gittel kezdtem el probalkozni es mivel mar megvolt a regi design (es lenyegeben maradt is), egy ropke delutan alatt elkeszultem a FreeBSD Ports Tinderbox + Git parositassal, valamint a regi adatok migralasaval. Tovabbi javitaskeppen SSH kulcs alapu hitelesitest tettem hozza. Igy igazabol mar a multkor taglalt SASL2 hekkelesre sincs szuksegem, viszont tovabbra is csak egy jelszo kell (a Tinderbox webes feluleten). A jelszo plusz SSH kulcs parositassal mondhatni multifaktoros authentikaciot kaptam :)

A Gitre teres eleg konnyen ment, mert talaltam egy jo leirast jellemzoen a Subversion felol erkezoknek. Sokkal kevesebb szkripteles kellett kore, a napi CVS-bol erkezo frissiteseket is villamgyorsan kezeli, nem beszelve a tobbi muveletrol.

Olvastam, hogy Linus Torvalds eredetileg specialis allomanyrendszernek szanta, nem is verziokoveto rendszernek. Elegge negativan nyilatkozott a Subversionrol es most mar meg is tudom erteni miert. Habar az SVN-nek sok kellemes ujitasa van a CVS-hez kepest (elvegre annak lenne a rendesen megirt valtozata), teljesitmenyben meg gyakran az elodjet is alulmulja.

Egyszoval: FreeBSD Ports Tinderbox + Git = siker!

Hozzászólások

A felhasznalokhoz tartozo branch-ek megszulese is tenyleg tobb mint egy ora..

Tudnál mondani arányszámokat, hogy például ez a művelet kb. most mennyi?

Gratulálok az optimalizáláshoz! :)

A branch-eleshez kell egy `git branch branch_nev` (~3 ms) majd a megfelelo helyen a Tinderboxnak egy `git clone -b branch_nev repository` (localhoston ez ~1 perc, de az SVN-nel is igy csinaltam). Ez legalabb 60-szoros gyorsulast jelent.

A napi CVS-bol importalas pedig ~2 perc (csup + git add, commit, gc), mindenfele trukkozes nelkul. SVN eseteben ez gyakran 8-12 perc korul mozgott, ami igy legalabb 4-6-szoros gyorsulast jelent.

Egy branch checkout-ja most ~450 MB + ~75 MB metaadat.

A gyari FreeBSD fa merge-olese sajattal (merge + push) ~1 perc localhoston, ha nincs semmilyen conflict.