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ä.

Aiheeseen liittyvät kirjoitukset

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *