Erinevus lehekülje "Subversion hoidla kasutamisest" redaktsioonide vahel

Allikas: Kuutõrvaja
 
(ei näidata 2 kasutaja 66 vahepealset redaktsiooni)
1. rida: 1. rida:
'''Subversion ning apache ja dav'''
+
===Sissejuhatus===
  
Näiteks on masinas suurem hulk kasutajaid kas sooviksid kasutada subversioni
+
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).  
samas soovides ligipääsu failidela apache abil mugavalt.
 
  
 +
[[Pilt:Subversion pilt.png]]
  
Why Apache 2?
+
Ü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.
  
If you're a system administrator, it's very likely that you're already running the Apache web server and have some prior experience with it. At the time of writing, Apache 1.3 is by far the most popular version of Apache. The world has been somewhat slow to upgrade to the Apache 2.X series for various reasons: some people fear change, especially changing something as critical as a web server. Other people depend on plug-in modules that only work against the Apache 1.3 API, and are waiting for a 2.X port. Whatever the reason, many people begin to worry when they first discover that Subversion's Apache module is written specifically for the Apache 2 API.
+
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.  
  
The proper response to this problem is: don't worry about it. It's easy to run Apache 1.3 and Apache 2 side-by-side; simply install them to separate places, and use Apache 2 as a dedicated Subversion server that runs on a port other than 80. Clients can access the repository by placing the port number into the URL:
+
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.
  
$ svn checkout http://host.example.com:7382/repos/project
+
===Kasutamine===
  
 +
'''install ja käivitamine'''
  
Can I view older revisions?
+
Paigaldame subversioni kas sourcest või operatsioonisüsteemi
 +
tarkvarahaldusvahenditega
  
With an ordinary web browser? In one word: nope. At least, not with mod_dav_svn as your only tool.
+
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/
  
Your web browser only speaks ordinary HTTP. That means it only knows how to GET public URLs, which represent the latest versions of files and directories. According to the WebDAV/DeltaV spec, each server defines a private URL syntax for older versions of resources, and that syntax is opaque to clients. To find an older version of a file, a client must follow a specific procedure to “discover” the proper URL; the procedure involves issuing a series of WebDAV PROPFIND requests and understanding DeltaV concepts. This is something your web browser simply can't do.
+
# svnserve -d --listen-host=0.0.0.0 --root=/home
 +
# svnadmin create /home/svnroot
  
So to answer the question, one obvious way to see older revisions of files and directories is by passing the --revision argument to the svn list and svn cat commands. To browse old revisions with your web browser, however, you can use third-party software. A good example of this is ViewCVS (http://viewcvs.sourceforge.net/). ViewCVS was originally written to display CVS repositories through the web, and the latest bleeding-edge versions (at the time of writing) are able to understand Subversion repositories as well.
+
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
  
The repository uses a standard layout of:
+
svnserve.conf
 
  
https://svn.apache.org/repos/asf/xerces/c/
+
[general]
                                        |
+
auth-access = write
                                        | - branches/
+
realm = My First Repository
                                        |
+
password-db = passwd
                                        | - tags/
 
                                        \
 
                                          - trunk/
 
 
  
For example, to check out the trunk (the place where the main development is taking place), execute:
+
passwd sinna tekitame kasutaja(d) ja parooli(d)
 
 
svn co https://svn.apache.org/repos/asf/xerces/c/trunk
 
  
 +
[users]
 +
kasutaja = parool
  
To check out the code in the xerces-2.7 branch, execute:
+
'''Projekti loomine'''
 
  
svn co https://svn.apache.org/repos/asf/xerces/c/branches/xerces-2.7
+
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"
To check out the code tagged xerces-2.8.0_rc1, execute:
+
Authentication realm: <svn://127.0.0.1:3690> My First Repository
+
Username: kasutaja
svn co https://svn.apache.org/repos/asf/xerces/c/tags/xerces-2.8.0_rc1
+
Password for 'kasutaja':
 +
Adding        1
 +
Adding        2
 +
Adding        3
 +
 +
Committed revision 1.
  
 +
'''Projektiga töötamine'''
  
 +
Kaust kus asume tööle on nimega work
  
install freebsd'l
+
Seejärel teeme checkoutimine co asemel võib kirjutada ka checkout
  
  cd /usr/ports/devel/subversion && make WITH_PERL=YES WITH_MOD_DAV_SVN=YES WITHOUT_BDB=YES install clean
+
  # svn co svn://127.0.0.1/svnroot/project
 +
A    project/1
 +
A    project/2
 +
A    project/3
 +
Checked out revision 1.
  
httpd.conf vajalikud read
+
Tekkis kausta work omakorda alamkaust project
 +
Siseneme kausta project ja seejärel teeme näiteks failis 1  muudatuse
  
LoadModule dav_module        libexec/apache2/mod_dav.so
+
ja anname käsu
LoadModule dav_svn_module    libexec/apache2/mod_dav_svn.so
 
LoadModule authz_svn_module  libexec/apache2/mod_authz_svn.so
 
  
 +
# 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.
  
Kasutaja vhost failis peab tööks olema osa
+
Võib ka lihtsalt anda käsu '''svn commit -m "vaja oli"'''
  
< Location /svn >
+
Juhul kui failide muutmise asemel soovime luua uue
DAV svn
+
tuleb anda käsk
SVNParentPath /home/kasutaja/svn
 
AuthzSVNAccessFile /home/kasutaja/svn.acl.repo
 
Require valid-user
 
AuthType Basic
 
AuthName "Subversion repository"
 
AuthUserFile /home/kasutaja/svn.acl.www
 
< /Location >
 
  
 +
svn add faili või kaustanimi
  
järgnevad käsud tuleb käivitada kasutajana kes cvs'i kasutama hakkab.
+
Samamoodi toimib käsk kustutamiseks
  
  mkdir -p svn
+
  svn delete faili või kaustanimi
cd svn
 
  
htpasswd -c svn.acl.www kasutaja
+
work kausta mujal tehtud muudatuste tõmbamine
  
Saadud parooli lisame faili
+
svn up
 +
At revision 3.
  
'''svn.acl.www'''
+
Muudatustel silma peal hoidmiseks
kasutaja:KC9zQCMSI3dDM
 
  
'''svn.acl.repo'''
+
# svn list --verbose
[test:/]
+
      2 kasutaja          32 Jan 30 15:34 1
kasutaja = rw
+
      3 kasutaja            7 Jan 30 19:03 2
 +
      1 kasutaja           0 Jan 30 15:31 3
  
svnadmin create test
+
Nagu näha oleme kolm korda laadinud üles faile
find . -type d | xargs -n 1 setfacl -m user:www:rwx
 
find . -type f | xargs -n 1 setfacl -m user:www:rw-
 
  
  
teevad need kasutajale ~/svn/test 'i svnadmin'ga
+
Kaotame faili muudatuse:
siis seab apachele permissionid paika topib siis htaccess failid ka ning loob yhe kasutaja:test konto
+
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
 
exploreri add-on
 
http://tortoisesvn.tigris.org/
 
http://tortoisesvn.tigris.org/
  
Kodukataloogi, kus svn looma hakkab cli klienti, kasutame muidugi seda, mida saab kodulehelt, näiteks juurkataloogi cvn kausta ning siis oleks soovitav /svn/bin paht'i ka, et saaks kasutada käske normaalselt.
+
http://www.cs.ubc.ca/~vailen/svn_howto.htm
  
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
+
http://queens.db.toronto.edu/~nilesh/linux/subversion-howto/
  
 +
http://abbeyworkshop.com/howto/misc/svn01/
  
http://minginimi.server.ee/svn/test
+
https://help.ubuntu.com/community/SubversionInstall
  
===Lingid===
+
https://help.ubuntu.com/community/Trac
http://trac.edgewall.org/wiki/TracInstall
 

Viimane redaktsioon: 26. märts 2010, kell 17: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).

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.

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