Lõplik juhend Apache Subversion SVN ja TortoiseSVN seadistamiseks versioonihalduseks


Kui teie töö nõuab dokumentide, veebilehtede ja muud tüüpi failide käsitlemist, mida regulaarselt värskendatakse, võiksite kasutada versioonihalduse mehhanismi, kui te seda veel ei tee.

Muuhulgas võimaldab see teil (ja ka potentsiaalsete kaastööliste rühmal) jälgida antud failis tehtud muudatusi ning saate probleemiga ilmnemisel või kui värskendus pole andnud oodatud tulemust, eelmise versiooni juurde tagasi liikuda .

Vabatarkvara ökosüsteemis nimetatakse kõige enam kasutatavat versiooni juhtimissüsteemi Apache Subversioniks (või lühidalt SVN-iks). Mod_dav_svn (Apache'i Subversioni moodul) abil saate pääseda Subversioni hoidlasse HTTP ja veebiserveri abil.

See tähendab, et keerame varrukad kokku ja installime need tööriistad RHEL/CentOS 7, Fedora 22-24, Debian 8/7 ja Ubuntu 16.04-15.04 serverisse. Testide jaoks kasutame CentOS 7 serverit IP-ga 192.168.0.100.

Kliendipoolel (Windows 7 masin) installime ja kasutame SVN-i liidesena TortoiseSVN-i (mis põhineb Apache Subversionil).

Server - CentOS 7
IP Address - 192.168.0.100
Client - Windows 7

1. samm - SVN-i installimine ja konfigureerimine Linuxis

Nagu me just mainisime, toetume veebiliidese abil SVN-i hoidlasse pääsemiseks Apache'ile. Kui see pole veel installitud, lisage see kindlasti pakettide loendisse, nagu allpool näidatud:

------------------ On CentOS / RHEL / Fedora ------------------ 
# yum update && yum install mod_dav_svn subversion httpd -y

------------------ On Debian / Ubuntu ------------------ 
# apt-get update && apt-get install libapache2-svn subversion apache2 -y 

CentOS 7 installimise ajal luuakse SVN-i jaoks Apache'i konfiguratsioonifail /etc/httpd/conf.modules.d/10-subversion.conf. Avage fail ja lisage järgmine konfiguratsiooniplokk:

<Location /svn>
    DAV svn
    SVNParentPath /websrv/svn
    AuthType Basic
    AuthName "Welcome to SVN"
    AuthUserFile /etc/httpd/subversion-auth
    Require valid-user
</Location>

Märkus. Debiani/Ubuntu puhul peate faili /etc/apache2/mods-enabled/dav_svn.conf lisama allolevad read.

<Location /svn>
    DAV svn
    SVNParentPath /websrv/svn
    AuthType Basic
    AuthName "Welcome to SVN"
    AuthUserFile /etc/apache2/subversion-auth
    Require valid-user
</Location>

Debianis/Ubuntu peate lubama dav_svn Apache mooduli:

# a2enmod dav_svn

Paar täpsustust:

  1. The SVNParentPath directive indicates the directory where our repositories will be later created. If this directory does not exist (which is most likely the case), create it with:
    # mkdir -p /websrv/svn
    

    It is important to note that this directory must NOT be located inside, or overlap, the DocumentRoot of a virtual host currently being served by Apache. This is a showstopper!

  2. The AuthUserFile directive indicates the file where the credentials of a valid user will be stored. If you want to allow everyone to access SVN without authentication, remove the last four lines in the Location block. If that is the case, skip Step 2 and head directly to Step 3.
  3. Although you may be tempted to restart Apache in order to apply these recent changes, don’t do it yet as we still need to create the authentication file with valid users for SVN, and the repository itself.

2. samm - lisage lubatud kasutajad juurdepääsuks SVN-ile

Nüüd kasutame htpasswd-d parooli loomiseks kontodele, millel on juurdepääs SVN-ile. Ainult esimese kasutaja jaoks vajame valikut -c .

Lubatud kontod ja bcrypt-krüptitud paroolid ( -B ) salvestatakse kataloogi/etc/httpd/subversion-auth võtmeväärtuste paaridena. Pange tähele, et tänapäevaste standardite kohaselt peetakse vaikimisi krüptimist MD5 või SHA, mida htpasswd kasutab, ebaturvaliseks.

------------------ On CentOS / RHEL / Fedora ------------------ 
# htpasswd -cB /etc/httpd/subversion-auth tecmint

------------------ On Debian / Ubuntu ------------------ 
# htpasswd -cB /etc/apache2/subversion-auth tecmint

Ärge unustage autentimisfailile määrata õige omandiline kuuluvus ja õigused.

------------------ On CentOS / RHEL / Fedora ------------------ 
# chgrp apache /etc/httpd/subversion-auth
# chmod 660 /etc/httpd/subversion-auth

------------------ On Debian / Ubuntu ------------------ 
# chgrp www-data /etc/apache2/subversion-auth
# chmod 660 /etc/apache2/subversion-auth

3. samm - lisage turvalisus ja looge SVN-i hoidla

Kuna pääsete SVN-ile juurde veebiliidese kaudu, peate lubama oma tulemüüri kaudu HTTP (ja soovi korral ka HTTPS) liikluse.

------------------ On CentOS / RHEL / Fedora ------------------ 
# firewall-cmd --add-service=http --permanent
# firewall-cmd --add-service=https --permanent
# firewall-cmd --reload 

Tulemüüri konfiguratsiooni uuesti laadides rakendusega --reload , rakendatakse püsiseaded kohe.

Looge esialgne SVN-i hoidla nimega tecmint:

# svnadmin create /websrv/svn/tecmint

Muutke omanik ja grupi omanik rekursiivselt apache:

------------------ On CentOS / RHEL / Fedora ------------------ 
# chown -R apache:apache /websrv/svn/tecmint

------------------ On Debian / Ubuntu ------------------ 
# chown -R www-data:www-data /websrv/svn/tecmint

Lõpuks peate muutma /websrv/svn/tecmint -i turvakonteksti (pange tähele, et peate seda toimingut kordama, kui otsustate hiljem teisi hoidlaid luua):

------------------ On CentOS / RHEL / Fedora ------------------ 
# chcon -R -t httpd_sys_content_t /websrv/svn/tecmint/
# chcon -R -t httpd_sys_rw_content_t /websrv/svn/tecmint/

Märkus. Kaks viimast käsku ei pruugi kehtida, kui installite SVN-i VPS-i, kus SELinux on keelatud.

Taaskäivitage Apache ja veenduge, et hoidla on saadaval.

------------------ On CentOS / RHEL / Fedora ------------------ 
# systemctl restart httpd

------------------ On Debian / Ubuntu ------------------ 
# systemctl restart apache2

Seejärel käivitage veebibrauser ja suunake see saidile http://192.168.0.100/svn/tecmint . Pärast 1. etapis loodud kehtiva kasutaja mandaatide sisestamist peaks väljund olema sarnane:

Siiani pole me oma hoidlasse ühtegi koodi lisanud. Kuid me teeme selle minutiga.

4. samm - installige TortoiseSVN Windows 7 klienti

Nagu sissejuhatuses mainisime, on TortoiseSVN Apache Subversioni kasutajasõbralik liides. See on GPL-litsentseeritud tasuta tarkvara ja selle saab alla laadida aadressilt https://tortoisesvn.net/downloads.html.

Valige oma arvutile vastav arhitektuur (32- või 64-bitine) ja installige programm enne jätkamist.

5. samm - installige klientmasinasse SVN-i hoidla

Selles etapis kasutame dokumentide sees kausta nimega webapp . See kaust sisaldab HTML-faili ja kahte kausta nimega skriptid ja stiilid koos Javascripti ja CSS-failiga (vastavalt script.js ja styles.css), mille soovime lisada versioonihaldusele.

Paremklõpsake veebirakendust ja valige SVN Checkout. See loob kaughoidla kohaliku koopia (mis on praegu tühi) ja lähtestab kausta versiooni haldamiseks:

Tippige hoidla URL-i http://192.168.0.100/svn/tecmint ja veenduge, et kohalik kassakataloog jääks samaks, seejärel klõpsake nuppu OK:

Sisestage kasutajanimi ja parool (vaadake 2. sammu) ja klõpsake nuppu OK:

Teilt küsitakse, kas soovite maksta tühja kataloogi. Kinnitage kassaga jätkamiseks. Kui see on lõpetatud, kuvatakse kausta nime kõrval roheline märk:

6. samm - siduge muudatused ja juurutage failid kaugserveri SVN-i hoidlasse

Paremklõpsake valikul webapp uuesti ja valige käsk Seista seekord. Järgmisena kirjutage kirjeldus kommentaar selle kohustuse hilisemaks tuvastamiseks ning kontrollige faile ja kaustu, mida soovite hoidlasse juurutada. Lõpuks klõpsake nuppu OK:

Sõltuvalt failide suurusest ei tohiks pühendumine kesta kauem kui minut. Kui see on valmis, näete, et oleme nüüd 1. redaktsioonis, mis vastab veebiliideses loetletud versioonile ja failidele:

Kui samade failidega töötab mitu inimest, peate värskendama oma kohalikku koopiat, et uusim versioon oleks töötamiseks saadaval. Selleks saate paremklõpsata käsul webapp ja valida kontekstimenüüst käsku Värskenda.

Palju õnne! Olete edukalt seadistanud SVN-serveri ja lubanud/värskendanud versiooni kontrolli all lihtsat projekti.

Kokkuvõte

Selles artiklis oleme selgitanud, kuidas installida ja konfigureerida Apache Subversioni hoidlaserver CentOS 7 serverisse ja kuidas teha selles hoidlas muudatusi TortoiseSVN-i abil.

Pange tähele, et SVN-is ja TortoiseSVN-is on palju muud kui see, mida siin piisavalt kajastada saame (eriti kuidas eelmiste versioonide juurde tagasi pöörduda), nii et lisateabe ja konfiguratsioonijuhtumite saamiseks võite viidata ametlikele dokumentidele (TortoiseSVN).

Nagu alati, andke meile teada, kui teil on küsimusi! Kasutage julgelt allolevat kommentaarivormi, et meiega ühendust võtta.