eMo-ohturyhmän svn-ohje

Ville-Pekka Vainio

Versio Kuvaus
1.0 Ensimmäinen versio

1. Perusidea

Tässä hieman tietoa versionhallinnasta niille, joilla ei ole asiasta kokemusta.

Versionhallinta perustuu ns. repositorioon (tiedostovarasto tms, hyvää suomennosta en ole vielä kuullut...). Repositorio on aika lähellä tavallista tiedostopalvelinta, paitsi että se pitää kirjaa kaikista sen hallintaan asetetuista tiedostoista. SVN-repositoriota voidaan käyttää verkon yli ja se mahdollistaa monen käyttäjän editoivan samoja tiedostoja samanaikaisesti. Repositoriosta on mm. mahdollisuus palauttaa poistettuja tiedostoja, palata vanhoihin versioihin ym.

Repositoriota ei käsitellä suoraan vaan aina ns. työkopioiden kautta. Jossain mielessä tilannetta voisi verrata olio-ohjelmointiin siten, että repositorio on luokka ja työkopio tämän luokan ilmentymä. Työskentely aloitetaan hakemalla omalle koneelle tai laitoksen kotihakemistoon työkopio repositoriosta. Jos haku on jo kerran tehty, entisen työkopion voi myös pelkästään päivittää uusilla muutoksilla, joita muut ovat tehneet. Kun omat muutokset on valmiit, ne pitää viedä repositorioon, josta muut voivat sitten ladata ne omaan työkopioonsa.

Samalla käyttäjällä voi toki olla useampiakin työkopioita, esim. laitoksen kotihakemistossa, kotikoneella ja vaikka läppärillä. Kunhan työkopionsa päivittää aina ennen työskentelyn aloittamista, kaikki toimii.

2. Tiedot repositoriosta

Repositoriomme sijaitsee hakemistossa /home/group/emo/repo . Tuota hakemistoa ei kuitenkaan ole tarkoitus käsitellä suoraan, vaan ainoastaan svn-komentojen kautta.

Repositorio sisältää sekä nettisivut että lähdekoodille tarkoitetun hakemiston eli hakemistot public_html/ ja src/ . Hakemisto src/ jakautuu vielä kolmeen alihakemistoon, branches/, tags/ ja trunk/ . Näiden tarkoitus on säilyttää mahdollisia eri tilanteissa olevia lähdekoodeja. Pääkehitys tapahtuu aina trunk-hakemiston alla. Branches on tarkoitettu tilanteisiin, joissa koodi haarautuu niin, että siitä on syytä pitää useampaa eri haaraa myös versionhallinnassa. Tags on tarkoitettu tilanteisiin, joissa halutaan "jäädyttää" jokin tietty versio lähdekoodista. Ei ole ollenkaan varmaa että tarvitsisimme mitään muuta kuin trunkia näistä, mutta olen valinnut tällaisen hakemistorakenteen siksi, että se on tietynlainen "oletus". Ja jos kuitenkin tulee sellainen tilanne että tarvitaan esim. branchesia, ei ainakaan tarvitse tehdä sitä jälkikäteen.

3. Käytön aloitus

Työkopio haetaan repositoriosta svn checkout -komennolla. Voit "checkoutata" minkä tahansa alihakemiston mitä repositoriossa on. Käytännössä tulet todennäköisesti tarvitsemaan public_html/ ja src/trunk/ -hakemistoja. Esimerkiksi nettisivujen editointia varten public_html-hakemistosta työkopion saa komennolla:

svn checkout svn+ssh://OMATUNNUS@melkki.cs.helsinki.fi/home/group/emo/repo/public_html

Vastaavasti src/trunk/ -hakemistosta (siis lähdekoodit) saa työkopion komennolla:

svn checkout svn+ssh://OMATUNNUS@melkki.cs.helsinki.fi/home/group/emo/repo/src/trunk

Huom! Ainakin minulla repositoriosta jotain hakevat tai sinne jotain vievät komennot kysyvät salasanaa kolmesti! Se ei siis ole mikään virhetilanteen merkki, jaksakaa vaan kirjoitella sitä ;)

4. Perustyöskentely

Kun olet checkoutannut jonkin hakemiston, voit muokata sitä aivan normaalisti omalla editorillasi. Tiedostojen siirrot, kopioinnit ja poistot työkopion sisällä pitää kuitenkin tehdä svn:n omilla komennoilla, kuten svn copy, svn move, svn delete. Jos lisäät uusia tiedostoja versionhallintaan, ne pitää asettaa svn:n hallintaan komennolla svn add tiedostonnimi.

Työkopioosi voit päivittää muiden muutokset menemällä sen hakemistoon ja komentamalla svn update. Muutoksesi saat vietyä repositorioon komentamalla työkopiosi hakemistossa svn commit -m "viestisi lokiin". Viestiin on hyvä kirjoittaa edes jotain siitä, mitä olet muuttanut.

Normaali työnkulku menee suunnilleen näin:

5. Nettisivujen päivityksestä

Nettisivut eli ryhmähakemistossamme oleva public_html-hakemisto on tavallinen svn-työkopio. Jos haluat muutoksesi versionhallinnan piiriin, tee uusien tiedostojen lisäämisen jälkeen svn add tiedostonimi. Jos muutat jo olemassa olevia tiedostoja, svn huomaa sen. Kun haluat viedä muutoksesi versionhallintaan, tee public_html-hakemistossa svn commit -m "jotain".

6. Windows-käyttö

Svn-ohjelmana kannattaa käyttää TortoiseSVN:ää. Sen asennus tekee Windows Explorerin hiiren oikealla näppäimellä avattavaan valikkoon omat valikkonsa, joiden kautta svn:ää käytetään.

Asennuksen jälkeen luo Explorerissa uusi hakemisto, sitten avaa hiiren oikean näppäimen valikko TortoiseSVN->Settings. Aseta kohtaan Network->SSH Client clientiksi TortoisePlink.exe. Oletuspolku sille on C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe. Tämän jälkeen voit tehdä checkoutin valikon kohdasta SVN Checkout. Kohtaan URL of Repository laitetaan yllä mainittu osoite ja sitten vain OK. Ohjelma kysyy Windowsissakin kolmesti salasanaa, mutta niiden syöttämisen jälkeen pitäisi tiedostojen ilmestyä tuohon hakemistoon. Update onnistuu valitsemalla oikean napin valikosta SVN Update ja commit vastaavasti.

7. Lisämateriaalia

Version Control with Subversion
(Laitoksella käytössä versio 1.3 eli lukekaa nightly-versiota)

Erityisesti luvut Chapter 2. Basic Concepts ja Chapter 3. Guided Tour