
A fejlesztett kódok nagy része – amelyben ilyen-olyan módon közreműködök vagy dolgozok - Subversion tárolóban vannak. Több szempontból is jó ez. Azon túl, hogy több fejlesztő tud egyszerre egyazon törzsön dolgozni vagy saját ágat készíteni, biztonsági mentésként is szolgál, hiszen egy-egy nagyobb mérföldkő elérésekor elegendő egy új tag-et létrehozni és a forráskód megjelölt állapotára bármikor vissza lehet “lapozni”. Ez pedig szükségtelenné teszi az ezredik biztonsági mentés elkészítését, hiszen elegendő napi mentést készíteni az SVN fáról, abban minden korábbi változat megtalálható.
Webes szolgáltatás esetén sokat tud egyszerűsíteni a kiadások és javítások közzétételén is, hiszen ha a szolgáltatás az SVN repository egy adot tag-jéből épül fel, akkor elegendő azon egy update parancsot lefuttatni és az biztosan lefrissíti a tárolóban lévő összes megjelölt váltatást. Nem felejtődhet ki semmi, jó eséllyel elmarad a szopódás. Persze ezt meg lehetne még fejelni a Phingel. A közeljövőben tervezünk megvalósítani az egyik munkához egy komplett Phingre és SVN-re épülő release metódust, ahol a teljes kód Subversion-ben tárolódik. A Phing segítségével kerül majd a kód és az SQL delták a staging majd később a production szerverre, rsync közbeiktatásával. Gyönyörűen automatizált lesz minden és – az előzetes tesztek alapján – a megvalósítás sem tűnik bonyolultnak.
Maga az Subversion tároló centralizált így kiválóan alkalmas arra, hogy bizonyos kimutatásokat készítsünk belőle. A Cacti például remek eszköz az összegyűjtött numerikus adatok megjelenítésére grafikonok formájában, de sajnos nem találtam igazán jó SVN riportáló cuccot, amit felhasználhattam volna grafikonok generálásához. Ez inspirált arra, hogy összedobjak egy minimális, de a célnak megfelelő kis PHP scriptet, ami például Cactiból használható adatbemeneti metódusként (Data Input Method). Tényleg minimál, csak a következő dolgokat tudja:
- Az SVN-ben tárolt adatok filerendszer statisztikája: forrásfájlok, könyvtárak és az összes állomány száma.
- Forrásállományokban lévő kódsorok száma.
- SVN revízió állapota az idősíkon.
- Tag-ek és branch-ek száma az idősíkon.
Sajnos a script használatához szükség van a Subversion PHP kiterjesztés telepítésére is. Én speciel a PECL tárolóból telepítettem azt. Helyi svn repóból tud dolgozni (file://), de csak egy kicsit kell rajta hegeszteni ahhoz, hogy távoli tárolót is elérjen. Ha felmerül rá az igény és más nem oldja meg, akkor összedobom azt is, csak kérjétek ;p
Kiexportáltam Cactiból az általam készített adat- és diagram mintákat, így még egyszerűbb munkára bírni az információbegyűjtőt. Talán másnak is hasznára válik majd a cucc. A telepítés:
- Az svn_stats.php-t be kell másolni a <cacti_path>/scripts/ könyvtárba.
- Csipkebokor vessző.
- Az svn_stats.php-ben ki kell cserélni a (4. sor) $_countExts változó értékét a kívánt kiterjesztésre (pl.: c, php, js, cs…). Array, tehát több értéket is kaphat. Ezen kiterjesztésű állományok sorait fogja számolgatni. Az $_excludeUrls változó értékében felsorolt elérési utakat figyelmen kívül hagyja (pl.: külső libek). Szintén array.
- Az XML állományokat beszippantjuk a Cacti felületén keresztül: “Import Templates”.
- “New Graphs” alatt lehet is készíteni új grafikont, ott fogja bekérni a repo URL-t.
Letöltés: svn_stats-0.1.zip













