Subversion hoidla kasutamisest: erinevus redaktsioonide vahel

Allikas: Kuutõrvaja
Mine navigeerimisribaleMine otsikasti
Jj (arutelu | kaastöö)
Resümee puudub
Jj (arutelu | kaastöö)
Resümee puudub
 
(ei näidata 2 kasutaja 49 vahepealset redaktsiooni)
1. rida: 1. rida:
===Subversion===
===Sissejuhatus===


cd /usr/ports/devel/subversion && make install
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).


[[Pilt:Subversion pilt.png]]


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


# svnserve -d --listen-host=0.0.0.0
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.  
# svnadmin create /home/svnroot
# svn checkout svn://127.0.0.1/home/svnroot
Checked out revision 0.


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.


[general]
===Kasutamine===
anon-access = read
auth-access = write
realm = My First Repository
password-db = passwd


'''install ja käivitamine'''


Seejärel teeme kaustastruktuuri järgneva pildi alusel /home/svnroot alla
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/


[[Pilt:Subversionkaust.png]]
# svnserve -d --listen-host=0.0.0.0 --root=/home
# svnadmin create /home/svnroot


svn import '''failinimi''' svn+ssh://jj@127.0.0.1/home/svnroot/project -m "Esimene import minu projekti"
Ligipääsuõigused seadistatakse kahe failiga mis asuvad loodud projekti svnroot sees kaustas conf
Password:
*/home/svnroot/conf/svnserve.conf
Adding        6-sup
*/home/svnroot/conf/passwd
Committed revision 1.


===Apache osa===
ära tuleb veel märkida ,et arenduseks minev kood asub meil kaustas
/home/project ja arendama hakkame seda kaustas /home/work


install freebsd'l
svnserve.conf


  cd /usr/ports/devel/subversion && make WITH_PERL=YES WITH_MOD_DAV_SVN=YES WITHOUT_BDB=YES install clean
  [general]
auth-access = write
realm = My First Repository
password-db = passwd


httpd.conf vajalikud read
passwd sinna tekitame kasutaja(d) ja parooli(d)


  LoadModule dav_module        libexec/apache2/mod_dav.so
  [users]
  LoadModule dav_svn_module    libexec/apache2/mod_dav_svn.so
  kasutaja = parool
LoadModule authz_svn_module  libexec/apache2/mod_authz_svn.so


'''Projekti loomine'''


Kasutaja vhost failis peab tööks olema osa
Kaust mida kasutame projektiks on '''project''' liigume sinna kausta ja impordime failid subversionisse
Hetkel on seal kolm faili nimedega 1 2 3


  < Location /svn >
  # svn import . svn://127.0.0.1/svnroot/project -m "Esimene import minu projekti"
DAV svn
  Authentication realm: <svn://127.0.0.1:3690> My First Repository
SVNParentPath /home/kasutaja/svn
Username: kasutaja
  AuthzSVNAccessFile /home/kasutaja/svn.acl.repo
  Password for 'kasutaja':
  Require valid-user
Adding        1
  AuthType Basic
  Adding        2
  AuthName "Subversion repository"
  Adding        3
  AuthUserFile /home/kasutaja/svn.acl.www
   
  < /Location >
  Committed revision 1.


'''Projektiga töötamine'''


järgnevad käsud tuleb käivitada kasutajana kes cvs'i kasutama hakkab.
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.


  mkdir -p svn
Tekkis kausta work omakorda alamkaust project
Siseneme kausta project ja seejärel teeme näiteks failis 1 muudatuse


htpasswd -c svn.acl.www kasutaja
ja anname käsu
 
Saadud parooli lisame faili


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


'''svn.acl.www'''
Võib ka lihtsalt anda käsu '''svn commit -m "vaja oli"'''
/home/kasutaja/svn.acl.www


kasutaja:KC9zQCMSI3dDM
Juhul kui failide muutmise asemel soovime luua uue
tuleb anda käsk


'''svn.acl.repo'''
svn add faili või kaustanimi
/home/kasutaja/svn.acl.rep


[test:/]
Samamoodi toimib käsk kustutamiseks
kasutaja = rw


Anname käsu
svn delete faili või kaustanimi


svnadmin create test
work kausta mujal tehtud muudatuste tõmbamine


tekib kaust svn/test
svn up
At revision 3.


Kui meil on acl lubatud failisüsteemile siis lihtsalt anname käsud.
Muudatustel silma peal hoidmiseks


  find . -type d | xargs -n 1 setfacl -m user:www:rwx
  # svn list --verbose
find . -type f | xargs -n 1 setfacl -m user:www:rw-
      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


Näide kuidas kasutada: et luua kettale kaust SVN ja seal siis teha checkout, tirime alla kataloogi test, sinna kataloogi test võib tekitada failid ja seejärel scn add failinimi ning selleks, et uploadiks scn commit -message


===Kasutamine===
Kaotame faili muudatuse:
svn revert foo.c
Reverted foo.c


Ligi pääseb näiteks veebikaudu
Kui soovid terve kausta tagasi saada tuleb kasutada --recursive parameetrit
svn revert --recursive .
Reverted newdir/afile
Reverted foo.c
Reverted bar.txt


http://minginimi.server.ee/svn/test
Soovides vaadata mis muudatusi on lisatud võrreldes eelmise versiooniga aitab käsk


svn diff -r PREV fail


svn co svn://sinuaadress/projekt/haru /sinukataloog
===Probleemid===


Seejärel toimub checkoutimine
* Kui väljavõtte tegemine ebaõnnestub lokaadi veaga, tuleb eelnevalt kirjeldada vastav keskkonnamuutuja, nt nii 'export LANG=et_EE.UTF-8'
ja pärast seal sees saad käske kasutada '''svn update, svn commit'''


Vajadusel saab samas projektis haru vahetada
svn help ja svn help <cmd> on samuti abiks
svn switch vanaharuaadress uueharuaadress
 
Enda elu lihtsamaks tegemiseks ,et ei peaks väga pikki käske pidevalt andma
 
export CVSROOT=:pserver:user@host:/var/cvs
cvs checkout blablaprojekt
 
cvs up -d -r change_3861
 
cvs add -kb failinimi //binaarfailid
 
cvs add failinimi //tavafailid
 
cvs commit
 
failide taastamine vanale kujule:
cvs up -j change_9999 -j ver-3_3_3_5 myfile.php
(nb! enne seda peab muudetud fail commititud olema)


===Lingid===
===Lingid===
134. rida: 143. rida:


http://abbeyworkshop.com/howto/misc/svn01/
http://abbeyworkshop.com/howto/misc/svn01/
https://help.ubuntu.com/community/SubversionInstall
https://help.ubuntu.com/community/Trac

Viimane redaktsioon: 26. märts 2010, kell 14:48

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/

https://help.ubuntu.com/community/SubversionInstall

https://help.ubuntu.com/community/Trac