Subversion

Linux.fista
Versio hetkellä 28. maaliskuuta 2007 kello 12.14 – tehnyt Botti (keskustelu | muokkaukset) (Botti vaihtoi luokan Luokka:Ohjelmistokehitys)
Siirry navigaatioon Siirry hakuun

Subversion on kehittynyt versionhallintajärjestelmä. Monet projektit ovat viime aikoina siirtyneet CVS:stä Subversioniin. Lyhennetään yleensä SVN.

Asiakasohjelma

Subversion-asiakasohjelma tulee yleensä jakelupaketin paketinhallinnasta subversion-nimisessä paketissa. Tämän jälkeen subversionia käytetään komennolla svn.

  • Projektista voidaan ottaa työkopio komennolla svn checkout osoite projekti, esimerkiksi
svn checkout svn://palvelin.example/vapaaprojekti/trunk munprojekti

Hakisi palvelin.example-palvelimen svn-varastosta projektin vapaaprojekti päähaaran, sijoittaen sen paikalliseen munprojekti-hakemistoon.

  • Työhakemistossa voi projektiin lisätä tiedostoja komennolla svn add, esimerkiksi
svn add uusfilu.cpp

Vastaavasti svn rm tiedosto

  • Tiedostoja voidaan muokata tämän jälkeen työhakemistosta millä tahansa tekstieditorilla.
  • Muokkausten jälkeen muutokset päivitetään komennolla svn ci, esimerkiksi
svn ci -m "kommentti"

Jonka jälkeen näet tiedostot, joihin tehdään muutoksia. Tämän jälkeen svn kysyy, suoritetaanko svn-varaston päivitys.

Jos jossain vaiheessa tarvitaan käyttäjätunnusta ja salasanaa (etenkin muutoksia tehtäessä kirjautumista vaaditaan lähes aina), svn kysyy tarvittavat tiedot.

Muita hyödyllisiä komentoja

  • svn update – Päivittää projektin työversion uusimpaan versioon.
  • svn revert – Peruuttaa työversioon tehdyt muutokset.
  • svn help – Näyttää listan kaikista komennoista.
  • svn help komento – Näyttää tietyn komennon käyttöohjeen.

Palvelin

Samassa subversion-paketissa tulee yleensä myös subversion-palvelinohjelma. Subversion-palvelimen käyttöönotto on yksinkertaista.

  • Aluksi luodaan koneelle svn-varasto. Esimerkiksi luomme svn-varaston polkuun /var/svn nimellä varasto:
mkdir /var/svn
cd /var/svn
svnadmin create --fs-type bdb varasto

Joka luo Berkeley DB -tyyppisen varaston nimelle varasto, ja /var/svn-hakemistoon ilmestyy hakemisto varasto. Voit käyttää myös uudempaa FSFS-formaattia (--fs-type fsfs) joka on alustariippumaton ja vie vähemmän tilaa. Toinen FSFS-formaatin etu on se, ettei se ei vaadi huoltotoimenpiteitä, kuten Berkley DB.

  • Luotuun varastoon voidaan myös hakea valmiiksi vähän pohjaa seuraavalla tavalla
svn import /var/svn/kivasvnpohja file:///var/svn/varasto/projektinnimi            
  • Seuraavaksi tehdään varastoon tarvittavat asetukset. Avaa tiedosto /var/svn/varasto/conf/svnserve.conf. Tiedostossa pitäisi olla useita kommentoituja rivejä joilla on ohjeita asetusten tekemistä varten. Tiedostosta pitäisi tehdä kutakuinkin tällainen (valmiit kommentit napsastu pois):
[general]
#Anonyymit saavat lukea (laita read:n tilalle none jos et halua antaa lukuoikeutta)
anon-access = read
#Kirjautuneille lukuoikeus
auth-access = write
#käyttäjätunnustiedosto
password-db = passwd
realm = Varastosi nimi
  • Käyttäjätunnukset määriteltiin edellä tiedostoon passwd. Luo siis tiedosto /var/svn/conf/passwd ja lisää sinne rivejä muodossa:
[users]
kayttaja1 = salasana
kayttaja2 = salasana2

Kun käyttäjän toimet vaativat kirjautumista, kirjautumistiedot tarkistetaan tästä tiedostosta.

  • Nyt kun asetukset on tehty, voidaan käynnistää itse svn-palvelin komennolla
svnserve -d -r /var/svn/varasto

-d tarkoittaa, että ajetaan palvelinta taustalla (nk. daemoni). -r-parametri kertoo, missä svn-varasto sijaitsee.

WebSVN

WebSVN on ohjelma, jolla svn-varastoa voi selata suoraan selaimella. Selailun lisäksi onnistuu mm. eri versioiden vertailu keskenään.

Monissa jakeluissa WebSVN löytyy suoraan paketinhallinnasta. Esimerkiksi Debianissa komento apt-get install websvn asentaa WebSVN:n paikoilleen /var/www-hakemistoon (tai vastaavaan). Asetustiedosto sijaitsee tämän jälkeen yleensä joko polussa /etc/websvn/config.inc, tai polussa websvn:n hakemisto/include/config.inc. Ainakin Debianin paketinhallinnasta asennettu versio käyttää oletuksena svn-varastoon polkua /var/svn. Varaston polun voi asettaa rivillä:

$config->parentPath("/var/svn/");


WebSVN:llä tulee olla lukuoikeudet svn-varastoon, ja lisäksi kirjoitusoikeudet varaston db-hakemistoon.

Linkkejä