Subversion:in kanssa työskentely
Palvelin ylläpitää nk. "keskusvarastoa", päätietokantaa joka sisältää projektin
yleisen julkaistun koodipohjan. Yksittäisillä kehittäjillä on omat
"työkopionsa", jotka ovat tietokannan paikallisia kopioita joltain hetkeltä ja
sisältävät paikalliset muutokset joita kehittäjä ei ole vielä siirtänyt
palvelimelle. Kun kehittäjä haluaa jakaa tekemänsä muutokset muiden tiimin
jäsenten kanssa, hän tekee muutokset ("commit") palvelimelle käyttäen
asiakasohjelmaa joka huolehtii tiedon siirtämisestä ja liittämisestä yhteen
muiden tekemien muutosten kanssa.
Jos käytät Linux:ia, FreeBSD:tä tai jotain muuta modernia UNIX kloonia niin
sinun ei tarvitse tehdä muuta kuin asentaa järjestelmääsi virallinen SVN
ohjelmisto, versio 1.0 tai uudempi. Kaikki yleiset Linux jakelut sisältävät
SVN paketin.
Huomautus
Palvelin pyörittää Subversion 1.1:tä jota voi käyttää
asiakasohjelman versioilla 1.0, 1.1 ja 1.2.
Jos käytät AmigaOS:ia, tarvitset TCP/IP stack:in ja asentaa jonkin SVN
käännöksen. Yksi vaihtoehto on Olaf Barthel:in tekemä porttaus SVN:stä
Amigalle joka löytyy AmiNET (etsi "subversion").
Toisin kuin CVS:llä ei sinun tarvitse erikseen kirjautua palvelimelle vaan SVN
kysyy tarvittaessa käyttäjänimeä ja salasanaa.
Huomautus
AROS varasto toimii salasanalla suojatussa SVN palvelimessa, joka
tarkoittaa sitä että sinun täytyy hakea käyttöoikeutta sille
voidaksesi ottaa osaa kehitystyöhön. Amiga Inc.:in vaatimuksesta on
anonyymi lukuoikeus evätty.
Käytä "checkout" komentoa hakeaksesi AROS:in lähdekoodit:
> svn checkout https://svn.aros.org/svn/aros/trunk/AROS
Tämä luo hakemiston nimeltä AROS ja asuttaa sen kaikella AROS:in alaisuuteen
kuuluvalla lähdekoodilla, missä voikin vierähtää jokunen tovi jos
verkkoyhteytesi on hidas. "necessary" moduuli contrib:ista on nyt pakollinen
kaikille AROS versioille kun se aiemmin tarvittiin vain i386-pc portille:
> cd AROS
> svn checkout https://svn.aros.org/svn/aros/trunk/contrib
Neuvo
"checkout":in jälkeen SVN muistaa mistä lähdekoodi on peräisin.
AROS:in pääkoodin lisäksi, jonka aiemmin haimme, SVN palvelimella on muutakin
tavaraa joka ei suoraan liity käyttöjärjestelmän ytimeen. Tämä tarkoittaa
esimerkiksi "contrib" moduulia joka sisältää kolmannen osapuolen ohjelmia
jotka on portattu AROS:ille, "binaries" moduulia joka sisältää
ruutukaappauksia, taustakuvia ja muuta sellaista, sekä "docs" moduulia joka
sisältää web sivuston lähdemateriaalin. Contrib moduuli on jaettu pienempiin
osiin jotta sinun ei tarvitse hakea kaikkea mahdollista tahtoessasi vain yhden
ohjelman.
Saatavilla olevat moduulit voit listata näin:
> svn ls https://svn.aros.org/svn/aros/trunk/
Haettuasi lähdekoodin saatat haluta päivittää ne ajoittain viimeisimmillä
muutoksilla joita muut ovat tehneet. Käytä tähän "update" komentoa:
> cd AROS
> svn update
Tämä liittää muiden tekemät muutokset omiisi ja hakee lisätyt uudet hakemistot
ja tiedostot. Jos joku on muuttanut tiedostoa jota olet itsekin muokannut,
yrittää SVN yhdistää muutokset automaattisesti. Jos te molemmat olette
muokanneet samoja rivejä, SVN saattaa epäonnistua tehtävässään. Kun näin
tapahtuu, SVN varoittaa siitä ja liittää molemmat versiot tiedostoon
erotimenaan <<<<. Sinun täytyy ongelman korjaamiseksi muokata tiedostoa
käsin.
Varoitus
Vaikka SVN onnistuisikin liittämään muiden muutokset omiisi, ei se
välttämättä tarkoita että kaikki olisi hyvin. SVN välittää ainoastaa
tekstistä; loogisia ristiriitoja voi silti esiintyä liitoksen jälkeen
(esim. joku on muuttanut jonkin käyttämäsi funktion semantiikkaa). Sinun
tulisi aina tarkistaa yhdistetyt tiedostot ongelmia välttääksesi.
Jos olet tehnyt joitain muutoksia ja tunnet että tahdot jakaa työsi muille,
käytä "commit" komentoa:
> svn commit
Voit antaa listan tiedostoja; muussa tapauksessa SVN kulkee tämänhetkisen
hakemiston ja sen alihakemistojen läpi löytääkseen muuttuneet tiedostot ja
lähettää ne. Ennen palvelimelle lähettämistä SVN pyytää sinulta lokimerkintää.
Tämän tulisi sisältää lyhyen kuvauksen siitä mitä olet muuttanut ja joissain
tapauksissa muutosten perusteen. Hyvin kirjoitetut merkinnät ovat oleellisen
tärkeitä sillä ne helpottavat huomattavasti muiden huomata mitä olet tehnyt ja
ehkä myös miksi. Lokimerkinnät kootaan ja lähetetään päivittäin postituslistan
välityksellä jotta kaikki pysyvät muutosten kyydissä.
Ennen lähettämistä tulisi sinun tehdä "update" varmistaaksesi ettei viime
hetken muutoksia ole tapahtunut niissä tiedostoissa joita olet lähettämässä.
Jos näin kuitenkin käy, täytyy sinun ratkoa mahdolliset ongelmat ennen omien
muutostesi lähettämistä. Varmista myös että olet testannut muutoksesi ennen
kuin lähetät ne; ainakin niin etteivät ne riko käännösvaihetta.
Lisätäksesi tiedostoja ja hakemistoja varastoon, käytä "add" komentoa:
> svn add file.c
> svn add dir
SVN ei matkaa automaattisesti uusien hakemistojen lävitse ja lisää niiden
sisältöä; sinun täytyy tehdä tämä itse. Kun olet lisännyt tiedostosi ja
hakemistosi, täytyy ne liittää kokonaisuuteen "commit" komennolla.
Kun tahdot lisätä suuremman määrän tiedostoja, esim. jonkin olemassaolevan
ohjelmiston lähdekoodin, "svn add" osoittautuu nopeasti rasittavaksi tavaksi
lisätä tiedostoja varastoon. Tähän sinun tulisi käyttää "svn import" komentoa.
Ikävä kyllä osio jossa kyseisen komennon toiminta on kuvattu SVN:n manuaalissa
on surkeasti kirjoitettu, joten esimerkki taitaa olla paikallaan:
Sijoita tiedostot ja hakemistot jotka tahdot importata sinne minne
tahdotkin, kunhan ne eivät sijaitse työkopiosi polulla. "import"
komennon käyttäminen olemassaolevan SVN työkopion sisällä voi johtaa mitä
kummallisempiin tuloksiin, jotenka tätä tulee välttää.
Siirry siihen hakemistoon joka sisältää tiedostot ja hakemistot jotka
tahdot importoida, esim.:
> cd name-1.2.3
Importoi tiedostot "svn import" komennolla:
> svn import -m <logMessage> <destinationPath>
Tämä importoi rekursiivisesti kaikki tiedostot ja hakemistot jotka löytyvät
tämän hetkisestä hakemistosta kohde polkuun varustettuna annetulla
lokimerkinnällä. Tosiasiassa aivan kaikkia tiedostoja ei lisätä: SVN
ohittaa tiedostot jotka ovat yleisesti tunnettuja varmuuskopio tyyppejä
sekä kaikki piilotiedostot, kuten #?.bak, .#? ja #?~.
Tästä huolimatta tulisi sinun etukäteen poistaa kaikki sellaiset tiedostot
joiden et tahdo päätyvän varastoon. On turha koettaa keskeyttää SVN
toimintaa jos näet jonkin turhanpäiväisen tiedoston joutuvan pakettiin
mukaan. Pistä vain nimi merkille ja poista se jälkeenpäin.
Jos esimerkiksi tahdot lisätä SVN 1.1.3 lähdekoodin
"contrib/development/versioning/svn" hakemistoon:
> cd subversion-1.1.3
> svn import -m "Initial import of SVN 1.11.12"
\ https://svn.aros.org/svn/aros/trunk/contrib/development/versioning/svn
Tarkempaa tietoa SVN:stä löytyy tottakai sen manuaalisivuilta ja
info-tiedostoista jotka seuraavat SVN:n mukana. Monilla sivustoilla on
hyödyllisiä oppaita jotka voivat olla helppotajuisempia kuin manuaalisivut.
Seuraavat sivut ovat erityisen suositeltavia:
|