Subversion ja versionhallinta

Kaikki enemmän tai vähemmän ohjelmointiin tutustuneet varmasti tietävät, että koodia on kätevää säilyttää versionhallinnassa. Pieniäkin projekteja on suhteellisen vaivatonta ja hyödyllistä säilyttää esimerkiksi Subversion-versionhallinnassa, vaikkapa ihan vain omalla työasemalla sijaitsevassa repositoryssä.

Versionhallinta on tietenkin omimmillaan isommissa projekteissa, joissa toteuttajia on useita ja repository sijaitsee keskitetysti jollain palvelimella. Versionhallinnan ei tarvitse rajoittua pelkästään sovelluskoodiin, vaan sen voi ulottaa muihinkin muuttuviin ja versioitaviin projekteihin, kuten esimerkiksi PL/SQL-paketteihin ja asetustiedostoihin.

Coding Horror -blogi ohjeistaa kätevästi Subversionin (SVN) asennuksessa omalle koneelle ja kattaa myös hieman versionhallinnan perusteita. Subversion onkin kohtalaisen hyvin tuettu eri ohjelmien toimesta ja sille on saatavilla useita eri ohjelmistoja eri alustoille kuten TortoiseSVN, SubCommander ja Eclipseen saatava Subversive. Muista ohjelmista mainittakoon Trac, joka tarjoaa projekteille viritellyn wikin, tikettiträkkerin ja liitynnän Subversioniin.

Jos versionhallinta yleisesti ei ole tuttu asia, kannattaa vilkaista visuaalinen opastus versionhallintaan ja sen toteuttamisesta keskitettynä mallina Subversionilla löytyy kattava Version Control with Subversion -kirja.

Vaihtoehtona hajautettu versionhallinta?
Versionhallintaa voi toteuttaa myös hajautettuna mallina, kuten Linuxin Kernelin kehittämisessä Gitiä käyttäen. Muita hajautettuja malleja ovat muun muassa Mercurial (mm. Mozilla) ja Bazaar (mm. Ubuntu). Keskitettyyn malliin verrattuna hajautetussa mallissa on esimerkiksi jokaisella kehittäjällä oma paikallinen repository. Hajautetuista lähteistä tulokset yhdistetään erilaisin perusteilla, kuten määrättyjen projektijäsenten päätöksillä mitkä muutokset siirretään eteenpäin tai sitten voidaan käyttää keskitetyn mallin tapaa. Hajautetun mallin järjestelmät ovat yleistymässä, mutta muutos keskitetystä mallista hajautettuun vaatii totuttelua. Pitämällä paikallista repositoryä, päästään aina käsiksi historiatietoon, sekä saadaan versionhallinnan tarjoamat edut ilman koodin yleisesti julkistamista.

Versionhallinta onkin osaltaan myös uskonnollinen kysymys samalla tavalla, kuten esimerkiksi käyttääkö vimiä vai emacsia, KDE:tä vai Gnomea tai Linuxia vai Windowsia. Erilaisista versionhallintamalleista löytyykin vahvoja mielipiteitä, kuten Linus Torvaldsin esitys hajautetun mallin Gitistä osoittaa. Yleisesti katsottuna tärkeintä kuitenkin on, että käytössä on edes jokin versionhallintajärjestelmä. Oli se sitten Subversion, Git, Mercurial, Bazaar tai vanha kunnon CVS.

Subversionilla alkuun
Tavallaan Subversionin ja yleisesti ottaen keskitetyn versionhallinnan voisi sanoa olevan jo hieman vanhentunutta, mutta Subversion tarjoaa tällä hetkellä helposti lähestyttävän ja hyvin tuetun kokonaisuuden versionhallintaan.

Toisaalta taas Subversionissa on heikkouksiakin, joten muihinkin vaihtoehtoihin kannattanee tutustua, kun perusteet ovat hallussa. Etenkin hajautettu malli vaikuttaa ihan kätevältä.

Päivän linkit 5.5.2008

  • Valokuvaaja Kimmo Taskinen, tunnettu paitsi luontokuvistaan myös Pahkasiassa julkaistuista sarjakuvistaan, keräsi 44 omasta edustavinta otosta kuvakoosteeksi HS.fi:n verkkosivuille. Lue kuvista myös kuvaajan kommentit.
  • Suomen ilmavoimien ja Frame Graphics Oy:n tuottama promootioelokuva Taivaan varjot on voittanut palkinnon WorldMediaFestival-kilpailussa Hampurissa. (via net.nyt)

Helppoa ruudunkaappausta Windowsissa FSCapturella

Ruudunkaappausten ottaminen on teoriassa helppoa, vain yksi napin painallus, mutta kaapatun ruudun saattaminen kuvaksi onkin sitten hieman vaivalloisempaa. Jos haluaa ottaa useamman kuin muutaman ruudunkaappauksen, on kätevää jos kaapatun ruudun saa suoraan kuvatiedostoksi, eikä vasta erikseen kuvankäsittelyohjelman kautta kierrätettynä.

Windowsissa tämä onnistuu muun muassa käyttämällä FSCapture-ohjelmaa, joka tarjoaa kattavat ominaisuudet ruudun kaappaamiseen ja on ilmainen versioon 5.3 saakka. Ohjelman voi käynnistää taustalle Windowsin tehtäväpalkkiin ja kutsua esiin haluamillaan pikakomennoilla kaappaamaan koko ruudun, tietyn ikkunan tai halutun alueen.

Ilmeisesti Microsoftin Vistassa tulee mukana Snipping tool, joka melkein vastaa Applen Mac OS X:n yksinkertaiseen tapaan ottaa ruudunkaappauksia, joten tulevaisuudessa tämäkin on hieman helpompaa jo vakiona.

Toisena vaihtoehtona voi käyttää Gimpistä poimittua Lightscreeniä, joka myös tarjoaa riittävät ominaisuudet ruudunkaappausten kätevään napsimiseen.

FSCapture FSCapture FSCapture