Subversion hoidla kasutamisest
Sisukord
Sissejuhatus
Subversion (SVN) on avatud lähtekoodiga versioonihaldustarkvara, võimaldab hallata faile ja katalooge ajapõhiselt ning nendega tehtud muutuste üle ülevaadet pidada. Kataloogipuu paigutatakse kesksesse repositooriumisse (repository).
Üldiselt kasutatakse versioonikontrolli tarkvara selleks, et hõlbustada mingi tekstilist tulemust tekitava ülesandega tegelevatel osalistel üksteise tegevusest osa saada ja koostööd teha. Samal ajal ei ole versioonikontroll iseenesest projektijuhtimise tarkvara.
Tavaliselt kasutavad kõik osalised ühte keskset versioonikontrolli serveris asuvat repositooriumit, kus asuvad kõneks olevale projektile vastavad failid ning iga kasutaja töökohaarvutis on keskse projekti koopia, mida nimetatakse kasutaja tööversiooniks. Kasutajad teevad muudatusi oma tööversiooni ning sünkroniseerivad andmeid keskse repositooriumiga. Sellise sünkroniseerimise käigus kopeerivad kasutajad oma tööversiooni tehtud muudatused versioonikontrolli repositooriumisse ning saavad osa teiste kasutajate poolt tehtud muudatustest eeldusel, et teised kasutajad on need kopeerinud repositooriumisse. Andmevahetus toimub ainult kasutaja ja repositooriumi vahel, mitte kunagi otse kahe kasutaja vahel.
Erijuhul kui versioonikontrolli süsteemi kasutab ka ainult üks kasutaja on ikkagi sellisel asjakorraldusel lisaväärtusi, näiteks seetõttu, et kasutaja saab suvalise varem olemasolnud versiooni juurde pöörduda.
Kasutamine
install ja käivitamine
Paigaldame subversioni kas sourcest või operatsioonisüsteemi tarkvarahaldusvahenditega
seejärel stardime subversion serveri. FreeBSD puhul tuli ka teatada --listen-host=0.0.0.0 abil ,et tegutseme ipv4 peal, millegipärast tahtis asi ipv6 kasutada, --root=/home abil määrame ,et svn kasutamisel ei pea defineerima seal asuvaid repositooriumeid täisrajaga näit piisab edaspidi svn://127.0.0.1/home/svnroot/ asemel svn://127.0.0.1/svnroot/
# svnserve -d --listen-host=0.0.0.0 --root=/home # svnadmin create /home/svnroot
Ligipääsuõigused seadistatakse kahe failiga mis asuvad loodud projekti svnroot sees kaustas conf
- /home/svnroot/conf/svnserve.conf
- /home/svnroot/conf/passwd
ära tuleb veel märkida ,et arenduseks minev kood asub meil kaustas /home/project ja arendama hakkame seda kaustas /home/work
svnserve.conf
[general] auth-access = write realm = My First Repository password-db = passwd
passwd sinna tekitame kasutaja(d) ja parooli(d)
[users] kasutaja = parool
Projekti loomine
Kaust mida kasutame projektiks on project liigume sinna kausta ja impordime failid subversionisse Hetkel on seal kolm faili nimedega 1 2 3
# svn import . svn://127.0.0.1/svnroot/project -m "Esimene import minu projekti" Authentication realm: <svn://127.0.0.1:3690> My First Repository Username: kasutaja Password for 'kasutaja': Adding 1 Adding 2 Adding 3 Committed revision 1.
Projektiga töötamine
Kaust kus asume tööle on nimega work
Seejärel teeme checkoutimine co asemel võib kirjutada ka checkout
# svn co svn://127.0.0.1/svnroot/project A project/1 A project/2 A project/3 Checked out revision 1.
Tekkis kausta work omakorda alamkaust project Siseneme kausta project ja seejärel teeme näiteks failis 1 muudatuse
ja anname käsu
# svn commit Seejärel kirjutame selgituse --This line, and those below, will be ignored-- svn-commit.tmp: 4 lines, 71 characters. Sending 1 Transmitting file data . Committed revision 2.
Võib ka lihtsalt anda käsu svn commit -m "vaja oli"
Juhul kui failide muutmise asemel soovime luua uue tuleb anda käsk
svn add faili või kaustanimi
Samamoodi toimib käsk kustutamiseks
svn delete faili või kaustanimi
work kausta mujal tehtud muudatuste tõmbamine
svn up At revision 3.
Muudatustel silma peal hoidmiseks
# svn list --verbose 2 kasutaja 32 Jan 30 15:34 1 3 kasutaja 7 Jan 30 19:03 2 1 kasutaja 0 Jan 30 15:31 3
Nagu näha oleme kolm korda laadinud üles faile
Kaotame faili muudatuse:
svn revert foo.c Reverted foo.c
Kui soovid terve kausta tagasi saada tuleb kasutada --recursive parameetrit
svn revert --recursive . Reverted newdir/afile Reverted foo.c Reverted bar.txt
Soovides vaadata mis muudatusi on lisatud võrreldes eelmise versiooniga aitab käsk
svn diff -r PREV fail
Probleemid
- Kui väljavõtte tegemine ebaõnnestub lokaadi veaga, tuleb eelnevalt kirjeldada vastav keskkonnamuutuja, nt nii 'export LANG=et_EE.UTF-8'
svn help ja svn help <cmd> on samuti abiks
Lingid
http://trac.edgewall.org/wiki/TracInstall
exploreri add-on http://tortoisesvn.tigris.org/
http://www.cs.ubc.ca/~vailen/svn_howto.htm
http://queens.db.toronto.edu/~nilesh/linux/subversion-howto/
http://abbeyworkshop.com/howto/misc/svn01/