A héten találtam egy nagyon érdekes dolgot. Körülbelül 1998-ban, amikor még a GE-ben dolgoztunk, akkoriban fejlõdött a mai Agile Programming metodológia (amit akkoriban inkább Extreme Programming-nak hívtak), aminek a vitáit, tapasztalatait én is követtem a C2 wiki-n. A C2 Source Safe bejegyzéséhez írtam is akkor egy rövid kommentet, azután 10 évig nem néztem arra (ugyan ki nézi a SourceSafe oldalt pont itt, amikor már maga a SourceSafe sem valami jó cucc?), egészen napjainkig, amikor is láttam, hogy ebbõl a kis hozzászólásból egész komoly vita alakult ki a résztvevõk között, pro és kontra. :)
Tök jó. És furcsa ma, a GIT korában, amikor olyan mágiákat csinálunk forráskontrollal, hogy azt én sem hittem volna egy évvel ezelõtt, visszaolvasni hogy akkoriban még milyen alap gondjaik voltak az ilyen rendszereknek. “Alapvetõen jó [....] bár határozottan megbízhatatlan, ha több ember használja hálózaton.”
Na a SourceSafe az a forráskontroll rendszer, aminél tényleg még a napi .tar.gz is jobb, ahogy azt Linus kifejezte, igaz, õ a CVS-re mondta ugyanezt. De a SourceSafe tényleg annyira rossz volt, hogy én a saját gépemen RCS-el (a CVS elõdjével) forráskontrollozgattam a saját munkámat, és onnan küldtem be a kódot a SourceSafe-be. :) Hasonlóan, mint ahogy sokan a GIT-et használják ma Subversion repository-k “továbbkontrollálására”.
Amúgy a GIT tényleg jó. Én féltem tõle, hogy túl komplex lesz egy, a miénkhez hasonló kis fejlesztõcsapat számára, hogy túl sok olyan dolgot tud, amiket nem használnánk ki, cserébe meg bonyolultabb. Azután jött egy olyan project, ahol annyira bonyolult konfiguráció kezelést és change management-et kellett megvalósítanunk, hogy a csapat úgy döntött (szavaztunk!), hogy akkor legyen GIT. És nem bántuk meg.
Igaz, hogy meredek volt a “tanulási görbéje”, de mindenki lelkesen belemélyesztette a fogát, és most már irtóra hiányzik a GIT, amikor valamelyik régebbi projecthez kell hozzányúlnunk, amiket még SVN-el kezelünk. :) Ha 4 éve létezett volna a GIT, nagyon sok mai szívástól meg lennénk kímélve, fõleg olyan projecteknél, ahol egy adott kódból több “instance” is fut, amik minimálisan valamiért el kell térjenek egymástól.