Aktualno

Marker napravio web stranice za Regionalni tjednik
Agencija Marker napravila je web stranice za najčitaniji regionalni tjednik u...

1 2 3 4 5

Tweet dana - 06.02.2012.

"Ovo sa placama u javnoj upravi je kao neka bizarna igrica. Svako napredovanje je mali savegame, placa ti ispod toga ne moze pasti." by @rjasmin

Opširnije

Nove vijesti

Kategorija: Internet - 07.02.2012.

Nextlevel.hr nedostupan, ali se ne gasi

Nedostupnost web stranica gamerskog časopisa Nextlevel zabrinuo je brojne posjetitelje, no razlog se krije u promjeni servera te bi taj problem trebao biti riješen najkasnije do 9. veljače.  

Opširnije...

Kategorija: Edukacija i događanja - 07.02.2012.

Besplatne Microsoftove jednodnevne radionice za developere

Microsoft Hrvatska organizira jednodnevne radionice u sklopu Windows Phone 7 App Challenge natjecanja u veljači i ožujku, namijenjene razvojnim inženjerima kao i svima koji se žele okušati u razvoju aplikacija  

Opširnije...

Kategorija: Internet - 07.02.2012.

Vrhovni sud Velike Britanije otvorio službeni Twitter profil

Britanski Vrhovni sud otvorio je Twitter account koji će osim novosti iz svakodnevnog rada suda tweetati presude iz sudskih slučajeva.

Opširnije...

Kategorija: Tvrtke i tržišta - 07.02.2012.

Slovenski Vitro odnio pobjedu na londonskom Cisco Live! 2012

Flip IT rješenje virtualnog ureda u oblaku ljubljanske tvrtke osvojio prvo mjesto ispred projekata britanskog Adepta i Intesa Sanpaolo grupacije.

Opširnije...

Kategorija: Mobiteli - 06.02.2012.

Rusija: napravio 419 GB mobilnog prometa i osvojio ljetovanje

Dok telekom operateri u Europi i SAD-u visokim cijenama mobilnog interneta ograničavaju njegovo korištenje, ruski MegaFon organizirao je nagradnu igru kojom potiče upravo suprotno.  

Opširnije...

Kategorija: Internet - 06.02.2012.

Grupna kupovina: Hrvatski siteovi među vodećima u Srbiji

 Srbija trenutno ima oko 60 web stranica za grupnu kupovinu, a među vodećima se nalaze i oni hrvatskih vlasnika.  

Opširnije...

Kategorija: Internet - 06.02.2012.

Hakeri napali web Nove ljubljanske banke

Web stranice Nove ljubljanske banke napadnute su 4. veljače DDoS napadom, zbog čega su sat vremena bile nedostupne.  

Opširnije...

Kategorija: Stručni članci - 05.02.2012.

Tweet dana - 03.02.2012.

"Cijela splitska zimska sluzba je u akciji, Mate pokusava namontirat ralicu, a Stipe je zapeja doma pa ne moze doci." by @DrazenDrnas

Opširnije...

Kategorija: Financije - 03.02.2012.

Poslovni: Hrvatski news portali u minusu

Hrvatski news portali koji nisu povezani s tiskanim medijima ili TV kućama u pravilu posluju s gubitcima.  

Opširnije...

Kategorija: Edukacija i događanja - 03.02.2012.

Na TweetUp u ministarstvu Uprave dolaze Bauk, Parić i Opačić

Ministar Arsen Bauk, pomoćnik ministra Darko Parić i potpredsjednica Vlade Milanka Opačić bit će domaćini Twitteraškog okupljanja koje će se održati 9. veljače 2012. godine u prostorijama Ministarstva Uprave.

Opširnije...

Kolumna Igora Rumihe: Kratki prikaz Mercurial version control sustava

Kategorija: Kolumne, komentari i blogovi
Objavljeno: 01.06.2010.
Autor: Igor Rumiha

Postoji nekoliko grupa alata koje bi svi trebali koristiti ali se dosta malo koriste. Radi se o version control sustavima, o sustavima za internu dokumentaciju i praćenje grešaka, te o code review alatima.

Zapravo ti alati samo služe kao potpora korisnim praksama koje se premalo koriste u softverskim projektima. Najbolji slogan za bilo koji Version control sustav bio bi "to je stroj za putovanje kroz vrijeme".

Imati arhiviranu cijelu povijest vašeg projekta, imati mogućnost skočiti natrag u vremenu u trenutak prije nego što ste unijeli tu katastrofalnu grešku u vaš proizvod, luksuz je kojeg si danas dozvoljavaju samo informatičari i poneki junak iz SF priča. Činjenica je da bi taj alat mogao koristiti bilo tko čiji se posao sastoji od pisanja velikih količina teksta (a uz malo pažnje to se može proširiti i na razne oblike binarnih zapisa kao što su slike, glazba, tehnički crteži i drugo).

CENTRALIZIRANI ILI DISTRIBUIRANI?

Danas se koriste mnogi VCS proizvodi, i komercijalni i besplatni. Svaki ima neke mogućnosti kojima privlači korisnike, a možda najvidljivija razlika danas je razlika između centraliziranih i distribuiranih sustava. Distribuirani sustavi su "novi igrači" u industriji i za sad ih uglavnom prihvaćaju manje firme, opensource projekti i sl. Među besplatnim alatim predstavnici te grupe su Git, Mercurial, Darcs, SVK, Bazaar, itd. dok se među komercijalnim sustavima mogu istaknuti Bitkeeper i Code Co-op.

VCS uglavnom radi na način da imate 2 entiteta: repozitorij i radnu kopiju. Na radnoj kopiji vi radite a kad ste spremni te promjene spremiti pozivate naredbu "commit" kojom se sprema trenutno stanje radne kopije u repozitorij. Kad se projekt sastoji od više ljudi svaki radi na svojoj radnoj kopiji. U centraliziranom sustavu svaka "commit" naredba šalje vaše izmjene u jedan centralni repozitorij dok u distribuiranom sustavu svaki od članova tima ima svoju kopiju repozitorija u koju se spremaju promjene. Distribuirani sustav zato razumije jedan dodatni skup naredbi koje služe međusobnom sinkroniziranju različitih repozitorija.

Kakva je zapravo korist distribuiranih sustava i čemu sav taj hype koji se podiže zadnjih nekoliko godina? Prema mojem iskustvu distribuirani VCS jesu korak naprijed, iz nekoliko razloga:

1. Jednostavnost i brzina. Većina interakcije sa version control sustavom je offline odnosno ne postoji komunikacija s nekim centralnim serverom. To znači da je odgovor od sustava brži. Brži odgovor sustava znači manje frustracije koju moram trpiti čekajući da se neka naredba izvrši.

2. Lako grananje projekta. Kreirati novu granu u kojoj ćete nešto isprobati je jako brzo i lako. Nije potrebna nikakva dodatna konfiguracija.

3. Spajanje ("merging") u glavni repozitorij se radi često i rade ga članovi tima svaki na svojem privatnom repozitoriju što donekle smanjuje komplikacije pri razrješavanju konflikntih izmjena.

4. Rad u projektu s distribuiranim VCS zahtijeva veće uključivanje svih članova tima u stvaranju konačnog proizvoda. Činjenica da svi članovi razrješavaju merge konflikte znači da svaki član tima mora biti dobro upoznat s radom svojih kolega što u konačnici daje dobre preduvjete da i krajnji proizvod bude kvalitetniji.

MERCURIAL

Ovo su samo neki od razloga za korištenje distribuiranih VCS-ova i u slijedećim mjesecima ću se posvetiti određenim aspektima rada s DVCS-om, a sad ću se kroz nekoliko primjera posvetiti samo prvoj točki. Do sad sam u svojem radu najviše praktičnog iskustva skupio s Mercurial sustavom pa ću njega iskoristiti za primjere.

Iskustvo je pokazalo da neki alat koji podržava organizaciju projekta neće biti korišten ako nije jednostavan i ako nije brz. Drugim riječima ako ste prisiljeni svoje vrijeme trošiti na interakciju s tim alatom a ne na svoj posao počet ćete tražiti načine da izbjegnete korištenje tog alata.

Mercurial doslovno sjaji kad je u pitanju jednostavnost i brzina korištenja. Sve naredbe se zadaju pozivanjem programa "hg" na komandnoj liniji ili korištenjem nekih od GUI dodataka za Windows explorer (TortoiseHG) ili za neki od IDE alata. Ja ću ovdje za primjere koristiti komandnu liniju ali logika rada (i nazivi naredbi) identični su i u GUI verzijama.

"hg" je jedini program iz Mercurial sustava kojeg morate pozivati. Za popis svih naredbi možete pozvati:

hg help

Naredba "init" inicijalizira repozitorij u direktoriju kojeg zadate kao argument (u ovom slučaju zadao sam kao argument trenutni direktorij "."):

hg init .

Tu sad na red dolazi vaš kreativni talent. Organizirajte si projekt stvarajući datoteke i direktorije po vašim željama. Ako koristite neki IDE proizvod onda će taj program organizirati projekt za vas, po njegovim željama. Da bi vidjeli što Mercurial misli o stanju vašeg repozitorije pozovete:

hg status

Rezultat bi mogao biti nešto ovakvo:

? doc/install.txt
? doc/manual.txt
? src/main.pl

Upitnik ispred imena znači da hg vidi ove datoteke ali ih još nije smjestio u svoj repozitorij. Zato zovemo naredbu "add":

hg add *

Hg će odgovoriti:

adding doc/install.txt
adding doc/manual.txt
adding src/main.pl

Sad smo spremni za prvi unos u naš repozitorij:

hg commit -u korisnik -m "Inicijalni unos"

Naredba commit kao argument s opcijom "-m" prima kratki opis izmjena koje se unose u repozitorij. To je obavezno i vrlo je korisno ako u ovom trenutnu stanete i promislite što ćete unijeti kao opis izmjene. Ljudi često unose kratke i besmislene poruke (npr. samo jedno slovo) jer im se u tom trenutku ne razmišlja. Kasnije, kad se dese situacije u kojima poželite proći kroz povijest vašeg projekta vidjet ćete da se isplati unijeti malo kvalitetniji tekst od samo "m" ili "commit" ili "fix" i sl. Version control sustavi mogu pokazati što je promijenjeno u nekoj reviziji ali ne mogu pokazati zašto je ta promjena napravljena ako vi ne unesete neki kvalitetni opis. Opcijom -u zadajemo neko ime koje će biti zapisano kao vlasnik ove izmjene. Ono se ne mora nigdje konfigurirati i ako želite možete svaki put zadati neko drugo ime no bilo bi korisno kad bi koristili isto ime tako da vi i vaši članovi tima znate tko je odgovoran za određene izmjene u projektu. Mercurial tu ne donosi svoja pravila već vaš tim treba dogovoriti pravila za organizaciju projekta.

Sad kad imamo nešto u našem repozitoriju možemo pregledati povijest izmjena:

projekt> hg log
changeset:   0:5d9437a15da4
tag:         tip
user:        korisnik
date:        Mon May 31 20:20:34 2010 +0200
summary:     Inicijalni unos

A U SLJEDEĆOJ KOLUMNI:

Ovo su osnove korištenja Mercurial DVCSa. Osim što je vrlo jednostavno kreirati novi repozitorij i što "commit" naredba nije slala podatke preko mreže u centralni repozitorij osjećaj korištenja je vrlo sličan centraliziranim version control sustavima. To je i smisao: ljudi navikli na cvs ili svn i slične centralizirane sustave mogu se brzo prebaciti na mercurial i bez posebnog dodatnog znanja postati pruduktivni u osnovnim zadacima. U slijedećem nastavku opisat ću jedan od mogućih workflow scenarija s Mercurialom u kojem dolaze do izražaja sve karakteristike distribuiranog sustava.

Igor Rumiha nezavisni je konzultant koji se u svojoj IT karijeri od 2000. godine do danas bavio izradom sustava za mrežni nadzor, provisioning sustavima u ISP i mobile telekom okolinama i automatizacije testova na embedded platformama. U pauzama između tih poslova bavio se administracijom Oracle i MSSQL baza, billing sustava pa čak i izradom billing sustava.

Facebook komentari

Vezane vijesti

Vijesti


Kategorija: Kolumne, komentari i blogovi - 21.07.2011.

Kolumna Ivana Ilijašića - Jeste li za jedan startup?

Potaknut nedavnom kolumnom Igora Vukmirovića o tome kako naplatiti sat programera, zapitao sam se koliko se nas koji smo pokušali pokrenuti startup pitalo: „Kako pronaći partnera za startup?“.

Opširnije...

Kategorija: Kolumne, komentari i blogovi - 07.07.2011.

Kolumna Igora Vukmirovića: Koliko košta sat rada jednog programera?

Svaki put kad s kupcem ili potencijalnim kupcem pregovaram o nekom informatičkom projektu koji treba odraditi, prolazim razne rituale.

Opširnije...

Kategorija: Kolumne, komentari i blogovi - 29.03.2011.

Izvještaj Damira Mujića: World Hosting Days

Po prvi puta smo se odlučili krenuti na cjelotjednu turneju na neku svjetsku web hosting konferenciju – i definitivno nismo pogriješili. World Hosting Days je najveća svjetska hosting konferencija koja okuplja nekoliko tisuća vodećih svjetskih stručnjaka iz tog područja i održava se sedmu godinu za redom.

Opširnije...

Kategorija: Kolumne, komentari i blogovi - 16.03.2011.

Kolumna Igora Vukmirovića: Zaslužujemo li proljeće

„Svaka država ima vlast kakvu zaslužuje“

Opširnije...

Kategorija: Kolumne, komentari i blogovi - 02.03.2011.

Kolumna Igora Rumihe: Zašto Agile projekti imaju veću šansu za uspjeh? (dio drugi)

Kako procijeniti vrijeme potrebno za implementaciju IT projekta? Ključna razlika između tradicionalnih metoda i pristupa kojeg ću opisati je fleksibilnost.

Opširnije...

123451112»