Verziókövetés a Google Code-dal (SVN)

Áttekintés

Előző cikkemben bemutattam a Subversion használatát, lényegét. Ebben a cikkben a Google Code Project Hosting SVN-alapú szolgáltatásra szeretnék fókuszálni.

Logó

Mit kapunk a csomaggal?
Egy, a Google szerverein tárolt SVN-alapú verziókövetési tárolót.
Letöltési felületet, ahova feltölthető a program kész (fordított) változata vagy a forráskódja.
Kommentálható Wiki rendszer. (A Wiki oldalak elérhetőek SVN-en keresztül is.)
Hibakeresési/-bejelentési szolgáltatás, ez is kommentálható.
Webböngészőből is szerkeszthetőek a fájlok és a Wiki-oldalak.
4096 MiB (= 4 GiB) tárterülettel. Ebbe a 4 GiB-ba kell beleférnie a teljes verziótörténetnek és a letöltéseknek. Egy letöltés nem lehet nagyobb 100 MiB-nál. Emellett pedig 50 MiB áll rendelkezésre a felhasználóknak/fejlesztőknek, hogy a hibajelentésükhöz további állományokat csatoljanak.

Mi szükséges hozzá?
Első lépésben szükségünk lesz egy aktív internetkapcsolatra és persze egy számítógépre. A számítógépen szükség lesz egy SVN-kliensre (--> olvasnivaló).

Ha ezekkel megvagyunk, szükség lesz továbbá egy Google-fiókra. Ha használtuk valaha a YouTube (videómegosztó), GMail (e-mail fiók), Google Webmestereszközök (webmesteri eszközkészlet), Google Analytics (látogatottságelemző), Google AdWords (hirdetési rendszer) vagy egyéb Google szolgáltatásokat, nagy valószínűséggel már rendelkezünk vele. Ha nem, akkor létre kell egyet hoznunk.

Google-fiók létrehozása és a Code profil

Google-fiók létrehozása
Látogassunk el a GMail kezdőlapjára, majd kattintsunk a Fiók létrehozása gombra. Töltsük ki a regisztrációs adatlapot értelem szerint.

Fiók létrehozása gomb
Fiók létrehozása gomb

Ha kész vagyunk az új Google-fiókunkkal, lépjünk a Google Code Project Hosting oldalra. Bal felül találunk egy Profile linket, ezt kell megnyitnunk.

Profil link (jobb felső sarokban)
Profil link (jobb felső sarokban)

A Google Code profilablak
A Google-code profilunkban egy áttekintést láthatunk a fiókunkról és beállíthatjuk a preferenciákat. A profilnak három része van.

My Profile
Az Én profilom rész az, amit mások is megtekinthetnek, ha a nevedre kattintanak valahol a Code rendszerében.

Én profilom szekció

Láthatjuk a nevünket, a személyes weboldalunkat valamint az esetlegesen becsillagozott (megjelölt) fejlesztőtársak profiljára mutató linkeket. (1.)
Láthatjuk azokat a projekteket, amelyeknek részei vagyunk, itt listázva a nevüket, a leírásukat és a mi szerepünket a projektben. (2.) Ha van csillagozott projekt megjelölve nekünk, akkor a "saját" projektek alatt azok is megjelennek.

Updates
A Frissítések fül további három részre bomlik. Láthatjuk a saját beküldött változtatásainkat (From [e-mail cím]), a csillagozott projektekbe (Starred projects) küldött változtatásokat, és a csillagozott fejlesztők (Starred developers) által feltöltötteket.

Settings
A Beállítások fülön tudjuk módosítani a preferenciáinkat. Beállíthatjuk, hogy az általunk feltöltött frissítések ne látszódjanak (Hide updates by me from other users.), hogy a teljes e-mail címünk ne látszódjon (csak a rövidítése) a nem projekttagoknak (When I participate in projects, show non-members my email address as "[e-mail cím]"). Kérhetünk a hozzászólásokról automatikus e-mail értesítőket (ha mi indítványoztuk a hibabejegyzést, vagy ha megcsillagoztunk egy Wiki-lapot).

Beállíthatjuk, hogy egy projekt Forráskód fülön mi legyen az automatikusan megnyitott allap. Továbbá közölhetjük a személyes honlapunk URL-címét is.

A hitelesítési jelszó
Az SVN hitelesítési jelszó automatikusan generált, nem általunk módosítható. Egyetlen opciónk, hogy újat generáltatunk. Ezt a jelszót minden hitelesítést igénylő műveletnél meg kell adnunk. (Vagy tároltatjuk a kliensünkkel.)

A jelszóról értesítő rész
A jelszóról értesítő rész

Új projekt létrehozása

Új projekt létrehozásához nyissuk meg a következő oldalt: http://code.google.com/hosting/createProject.

Egy űrlap fogad minket, ezt továbbhaladás előtt ki kell töltenünk a következő adatokkal. Minden mező kitöltése kötelező.
Project name (Projekt neve): Ez a név fog bekerülni az SVN által használt URL-be és a böngésző címsorába. Legalább egy kisbetűs karaktert tartalmaznia kell, az elején és a végén nem állhat írásjel. Csak az angol ábécé 26 betűje használható fel, ékezetek nem kerülhetnek ebbe a névbe. Ha bármi nem megfelelő karakter kerül a névbe, egy piros Invalid project name szöveg fog figyelmeztetni.
Project summary (Összegzés): Egy rövid összefoglalója a projektnek.
Description (Leírás): A projekt hosszabb leírása.
Version control system (Verziókövetési rendszer): Itt a Subversion-t válasszuk.
Source code licence (Forráskódi licenc): Itt ki kell választanunk a projektre érvényes nyílt forráskódú licencet, amit használni szeretnénk. Megjelölhetjük "Egyéb Nyílt Licenc"-ként is, de ekkor (a szabályzat értelmében) nekünk kell feltöltenünk a licencünket, és azt jól látható helyen (kiemelt Wiki-lap, a letöltött csomagok és a /trunk mappában egy LICENCE fájl) fel kell tüntetnünk.
Project label(s) (Projektcímkék): Itt megadhatunk címkéket a projektünk jellemzésére. Ez akkor hasznos, ha feltételezzük, hogy mások keresni fognak a projektre. Ajánlatos megadni a projekt célját (pl. Addon, App, Utility), az operációs rendszert, amin fut (Windows, Linux, Android, Apache) és a programozás nyelvét (CPP, PHP, Plaintext).

A kitöltendő űrlap
A kitöltendő űrlap

Ha mindent kitöltöttünk, a Create project gombra kattintva létrejön a projektünk.

A projektoldal bemutatása

A projekt lapja a következő két címen érhető el: http://projektneve.googlecode.com vagy http://code.google.com/p/projektneve. A projektneve értéke a létrehozáskor megadott projektnév.

A projekt oldala 6 lapra oszlik.

A projektek 6 elemes menüsora
A projektek 6 elemes menüsora

Projekt home (Kezdőlap)

Summary (Összefoglaló)

Projekt összefoglaló

A összefoglaló lapon találjuk a projekt leírását, balra tőle egy oldalsávot. Ez az oldalsáv tartalmazza az összes információt a projektről, úgy mint csillagozások száma, aktivitásmérő, licenc, címkék (automatikusan kereshetőek az azonos címkével rendelkező projektek), a tagok listája és a te saját tagságod szintje, gyorshivatkozások a projekt RSS/Atom hírlevelére valamint a kiemelt letöltésekre/Wiki-lapokra és az egyénileg definiált külső oldalakra.

Updates (Frissítések)
A frissítések rész tartalmazza a projekthez tartozó összes frissítést, ide értve az SVN-könyveléseket, valamint a Wiki lapok, hibajelentések és letöltések módosításait.

People (Tagok)
A tagok részen láthatjuk a tagok listáját, tagsági szintjüket és feladataikat (Duties). Ha tulajdonosok vagyunk, azonnal hozzáadhatunk tagokat, valamint egy tagra kattintva módosíthatjuk a tag jogkörét, feladatait és megjegyzéseit.

Downloads (Letöltések)
A letöltések listája. Kereshetünk a letöltések között, vagy újat tölthetünk fel. Fontos, hogy egy letöltés maximum 100 MiB méretű lehet. A letöltés sorában a nyílra kattintva azonnal letölthetjük a fájlt, vagy a névre kattintva az információs lapra jutunk.

Az információs allapon egy QR-kódot találunk amivel gyorsan elérhetjük a fájlt mobil eszközről.

Wiki
A Wiki lapok listájának felépítése hasonló a letöltésekéhez. Kereshető lista, egy gombbal az új Wiki-lap felviteléhez. Egy Wiki-lap megtekintése közben kommentelhetünk,

Issues (Hibabejelentések)
A hibajelentési lista szintén egy hasonló felépítésű oldalt tár elénk.

Source (Forráskód)
A forráskód lap három fülre tagolódik, azonban ezt a lapot megnyitva nem automatikusan a Checkout fül töltődik be, hanem a profilunkban beállított.

A felső sorban kereshetünk a fő ág mappájának (alapesetben: /trunk) fájljaiban egy megadott szövegrészlet után. Kérhetünk változtatás-utánajárást (code review) is. Ennek használatával egy speciális hibajelentést adunk fel, amelyben arra utasítjuk az ezzel foglalkozókat, hogy nézzék át a beküldött módosításunkat esetleges hibák/észrevételek után.

Checkout

Checkout

Ez a lap általános információval lát el minket a checkout mikéntjéről.
FONTOS! A Google Code rendszerében ha a munkakönyvtárunkat később commitolni szeretnénk, mindenképpen a HTTPS protokoll használatával kell végeznünk a checkoutot.

Browse (Tallózás)

Tallózás

Ezen a lapon böngészhetjük a tárolónk tartalmát. Bal oldalt egy fastruktúra (1.), felül egy címsor (2.), jobb oldalt pedig egy fájllista (3.) található. Egy fájl nevére kattintva betöltődik annak tartalma és információi. A Rev oszlopban található számra kattintva az adott változtatás (revízió) lapjára, az Author (szerző) nevére kattintva pedig a fejlesztő profiljára lépünk.

Ha nincs kedvünk/időnk az SVN klienset használva fájlokat feltölteni, használhatjuk a beépített fájllétrehozó/feltöltő eszközt a Create vagy Upload (4.) linkre kattintva.

Változtatások
A változtatáslistában az összes feltöltött módosítás szerepel csökkenő sorrendben. Egy sorban kattintva az adott változtatás allapjára jutunk. A változtatások kommentálhatóak.

Egy adott fájl tartalmának böngészése
Ha rákattintunk egy fájl nevére, a fájl tartalmát böngésző részre jutunk. A bal oldalon található a fájl tartalma (szintaxiskiemelés a legtöbb programozási nyelv esetén üzemképes), jobb oldalt pedig a részletek, úgy mint: legfrissebb változat könyvelési megjegyzése, régebbi változatok, fájlméret, tulajdonságok.

A felül található ceruza ikonra kattintva betöltődik a webböngészős szerkesztő.

A projektoldal bemutatása (II.)

Az Administer opcióval az adminisztrációs lapra jutunk. Itt állíthatjuk a projekt tulajdonságait.

Az adminisztrációs menü
Az adminisztrációs menü

Project Summary (Összegzés)
Ezen a lapon állíthatjuk a projekt címét, leírását, címkéit, logóját. Felvihetünk egyedi linkeket, ezek három csoportba rendeződnek: külső linkek, Google Groups vitacsoportok és blogok. Ha használjuk a Google Analytics látogatottsági elemzőt, a követőkód (amivel az Analytics megkapja, hogy látogatták az oldalt) is megadható.

Project Members (Tagok)
A tagok lapon a taglistát állíthatjuk. Három szövegdobozba kell beírni a tagok e-mail címeit egymás alá. (A részletes leírás, feladatlista és jogkör a projekt kezdőlapjának Tagok részében szerkeszthető.)

A tagok három kategóriába sorolhatóak:
Owner (Tulajdonos): A projekt fő adminisztrátora, bármit módosíthat. A projektet létrehozó fejlesztő ezzel a jogkörrel indul.
Committer (Fejlesztő): Olyan tagok, akik dolgozhatnak a projekten (változtatások feltöltése, Wiki-lapok szerkesztése, letöltések adminisztrálása), de nem férnek hozzá a projekt beállításaihoz.
Contributor (Hozzájáruló): A hozzájárulók jogköre semmivel sem nagyobb egy átlagos vendég (nem projekttag) jogkörénél, azonban a nevük megjelenítésre kerül. Ide felvehetőek a pl. SVN-eléréssel nem rendelkező/magához a programozáshoz nem értő tagok, akik segítenek a hibakeresésben/kiszolgálják a felhasználókat.

Downloads (Letöltések)
A letöltések beállításainál felvehetjük a letöltések címkéit, a formátum:
címke neve = leírás.

Beállítható, hogy egy letöltés egy adott prefixumú címkehalmazból legfeljebb csak egy darabbal rendelkezhet (így pl. beállítható, hogy a címkét csak OpSys-WIndows vagy csak OpSys-Linux címkével láthassuk el (a prefixum értelem szerűen OpSys-)).

Konfigurálható továbbá a megjelenő oszlopok felépítése és a listázott elemek rendezési elvét. Ha csökkenő rendezést szeretnénk egy oszlopon alkalmazni, a nevét egy mínusz jellel (-) kell megelőznünk.

Wiki
A letöltési beállításokkal teljesen megegyező felület. Azonban a Wiki sajátosságai miatt itt bekerült pár plusz beállíthatóság is.

Be-/kikapcsolhatjuk a hozzászólások engedélyezését és kérhetünk e-mail értesítőt a hozzászólásokról. Beállítható a minden Wiki-lapon megjelenő oldalsáv neve valamint (ha több nyelvre lefordítottuk a Wiki-lapokat) az alapértelmezett nyelv kódja (pl. hu, en).

Issues (Hibajelentések)
Egy szintén a letöltésekével megegyező felület, azonban itt több címke is beállítható. Léteznek úgynevezett globális címkék, ezek a megjelölés és kategorizálás szerepét látják el. A státusz-címkék pedig a bejelentés státuszát adják meg. Külön kell definiálni státuszcímkéket a lezárt és a még nyitott bejelentésekhez.

Lejjebb haladva beállíthatóak sablonok. Amikor valaki egy új bejelentést szeretne beküldeni, sablonok közül kell választani. Megadható a sablon pár mondatos leírása és szövege. Beállítható, hogy a felhasználó köteles legyen a leírást módosítani, vagy ez opcionális.

A sablonok lehetnek rejtettek a nem projekttagok elől. Beállíthatóak automatikusan a címkék, így egyszerűen hozhatunk létre sablonokat a programunk különböző részeinek defektjeihez. A hibák tulajdonosa is fixálható, ha ez elmarad, automatikusan a beküldőhöz rendelődik hozzá.

Még lejjebb kérhetünk e-mail értesítőt a hibákról egy megadott e-mail címre, állíthatjuk a megjelenő oszlopkat. Felvehetőek még szűrők. A szűröknek meg kell adnunk az ÖSSZES címkét. Ha minden címke megtalálható a hibajelentésen, akkor történik a beállított dolog. (Pl. extra e-mail értesítő egy másik címre.)

Source (Forráskód)
A forráskód beállításoknál a forráskód menüelem preferenciái kezelhetőek. Átválthatunk Mercurial rendszerbe és onnan vissza. Megadható az alapértelmezett böngészési kezdőmappa (ahol a Source -> Browse fül megnyitja a mappalistát), valamint az alapértelmezetten felajánlott checkout mappa.

Ha valami balul sült el (pl. érzékeny személyes adat került fel a rendszerbe), kérhetjük a tároló teljes megtisztítását.

Be-/kikapcsolhatóak a korábban megismert változtatás-utánajárási kérések. E-mailes értesítőt kérhetünk a felküldött változtatásokról, valamint egy megadott webcímet "megnyitva" is elküldhető az értesítés (ha rendelkezünk ennek feldolgozására képes webszerverrel). Hátránya, hogy csak a projekt neve és a változtatás száma adható át, más nem. Így a webszerverünknek kell később kibogoznia (pl. egy PHP szkripttel) a változtatás részleteit.

A Process review and issue update commands in commit log messages opció használatával automatizálható lesz a hibajelentések lezárása. Tehát, ha a változtatási megjegyzésbe beírjuk a következő szövegrészt: (fixes issue azonosító ID) akkor az adott ID-ű hibajelentést automatikusan lezárja.

Tabs (Fülek)
Ha szeretnénk a korábban leírt 4 fül (letöltések, wiki, hibajelentések, forráskód) helyett egy Wiki-lapot betölteni, annak a nevét kell a megfelelő sorba beírni. El is rejthetőek a megadott fülek.

Advanced (Fejlett)
Ezen a legutolsó fülön pedig a projekt TELJES törlését kérhetjük (ez csak egy bizonyos idő után zajlik le), és megtekinthetjük a tárterületkvótánk állapotát.

A megtelő tárterületet megnövelhetjük egy speciális igénylési procedúra szerint. Az igény benyújtása után az adminisztrátorok elbírálják a kérésünket.

Speciális szükségletek, utószó

A Google Code szolgáltatás használata a Verziókövetés cikkben ismertetettektől nem tér el. Nincs szükség semmi egyéb konfigurálásra a Subversion és TortoiseSVN esetében.

FONTOS! Összefűzni csak szöveges fájlokat lehet, binárisokat nem. A bináris fájloknál ajánlott a zárolás (svn lock) parancs használata, azonban ez a Google Code rendszerében NEM támogatott.

Személyes értékelés
Nagyon tetszik a Google Code szolgáltatása (én is használom). Stabil, csak néha vannak leállások (karbantartás idejére), de azt bejelentik előre. Ez az (nemrég bekerült) netes szerkesztő/feltöltő felület külön jó pont, azonban egy hátránya van, hogy az ékezetes karaktereket szeretni nem ismerni/elkavarni.

Egy jó szolgáltatás, csak ajánlani tudom.

Előzmények