SVN

    SVN (Subversion) je sistem kontrole revizije. Nastao je kao sistem koji je trebalo da poboljša CVS. Koristi se dosta u Open Source zajednici, pa ćemo ga i mi koristiti. Prednosti korišćenja kontrole revizije su što je kod centralizovan, stoji na jednom serveru, što omogućava da više ljudi rade na njemu i svaki fajl se može vratiti na neko prethodno stanje, pa se greške lako ispravljaju.

    Ako ste ovde onda vas verovatno zanima kako nabaviti naš kod i kako ga koristiti.

Linux

    Ako koristite Linux verovatno već imate komandu svn, ako ne nabavite je vašim omiljenim putem. Tada sve što treba da uradite je da u konzolu upišete: svn co https://etfgamingcrew.svn.sourceforge.net/svnroot/etfgamingcrew/Pong putanja_do_foldera_na_hard_disku. Time ćete preuzeti ceo sadržaj sa servera. Za listu ostalih komandi konsultujte dokumentaciju, zovu se slično kao i parnjaci iz donjeg paragrafa (npr. co umesto checkout). Postoje i razna grafička okruženja.

Windows

    Ako koristite Windows, moja preporuka je TortoiseSVN, On se integrise u explorer što olakšava korišćenje. Sve što treba da uradite da bi preuzeli kod jeste da stvorite nov folder, kliknete desnim klikom, izaberete opciju SVN checkout i u polje URL of repository napišete https://etfgamingcrew.svn.sourceforge.net/svnroot/etfgamingcrew/Pong. Sledeci put kada zelite najnoviju verziju fajla, ili foldera samo vam treba SVN update. Kada ste napravili svoje prve izmene i želite da ih pošaljete tu je SVN commit. On otvara novi dijalog u kome birate fajlove koje želite da pošaljete. Prvi put vam će se pojaviti gomila nepotrebnih privremenih i drugih fajlova koje ne bi trebalo da šaljete. Njih izignorišite desnim klikom pa add to ignore list. Neki fajlovi pripadaju projektu ali ne želite da ih šaljete kao što je Ogre.cfg fajl. Njih pošaljite u ignore-on-commit changelistu. Na vrhu prozora se nalazi textbox za log poruku. Poruka treba da kratko opisuje izmene u reviziji koju šaljete. Poruku bi uvek trebalo napisati. Prvi put kada pokušate da pošaljete izmene pitaće vas za šifru i korisničko ime sa sourceforge-a. Od drugih korisnih komandi tu je Get/Release lock, kojom možete sprečiti da neko menja fajl na kome ste počeli da radite. Pre svakog commita bi trebalo da updateujete, da bi ispravili sve eventualne konflikte. Konflikt nastaje kada se fajl na kome ste radili razlikuje od originala na kome ste načinili izmene. To se dešava kada neko pre vas pošalje novu verziju određenog fajla na kome i vi radite. Konflikt je lako rešiti diff alatom koji se automatski pokreće kada dođe do konflikta. Tada možete lako pregledati razlike liniju po liniju i spojiti dva fajla u jedan.

Struktura direktorijuma

    Root direktorijum na sourceforge-u je na putanji https://etfgamingcrew.svn.sourceforge.net/svnroot/etfgamingcrew/. Direktorijum projekta je /Pong. Direktorijum /Pong/trunk je "glavni" direktorijum. Na njemu se obavlja rad, to je tekuća verzija projekta. /Pong/tags je mesto gde se čuvaju sve značajnije prekretnice u životu jednog projekta. To su najčešće verzije koje su doživele release ili samo stabilne verzije. Za sada postoji samo /Pong/tags/v0.1 i on čuva kod i stanje verzije 0.1 koja je izbačena na sajt. Tagovi kada su stvoreni retko se diraju. U /Pong/branches idu "grane" koje nastaju kad projekat dovoljno sazri da može da se "razgrana", odnosno da nastane više pravaca u kome projekat može da krene. Tu mogu biti i eksperimentalne grane i/ili privatne grane sa kojima neko može da radi, a da ne brine o konfliktima, pa da se kasnije spoje u stablo (trunk) projekta. Što se trunka tiče tu dalje u samom trunku imamo fajlove kao što su licenca, changelog, readme i autori. Dalje /Pong/trunk/Build, tu se nalaze pravila za build i projekti za razna razvojna okruženja odvojeni po folderima. Za sada MSVC9 radi uvek, sa tim što će i MSVC10 uskoro./Pong/trunk/Debug /Pong/trunk/Release su direktorijumi u koje se smeštaju debug i release verzije, a /Pong/trunk/Intermediate za međukorak i sve privremene fajlove. Za podešavanja VS-a i debug/release direktorijuma pogledajte tutorial. /Pong/trunk/Media sadrži sve fajlove i skripte koje igra koristi. U tom folderu može da se napravi džungla i treba voditi računa gde šta smeštate i praviti brdo pod-direktorijuma. Media i Release su jedina dva foldera koja su potrebna da se igra pokrene i oni se pakuju i kače kao neka release verzija. I na kraju /Pong/trunk/Source sam kod projekta i /Pong/trunk/Source/3rd-Party kod trećih stranki koji koristimo sa dopuštenjem ili nam licenca to dozvoljava.