Galutinis „Apache Subversion SVN“ ir „TortoiseSVN“ nustatymo vadovas versijų valdymui


Jei jūsų darbui reikia tvarkyti dokumentus, tinklalapius ir kitokio tipo failus, kurie yra reguliariai atnaujinami, galbūt norėsite naudoti versijų valdymo mechanizmą, jei to dar nedarote.

Be kitų dalykų, tai leidžia jums (ir potencialių bendradarbių grupei) stebėti tam tikro failo pakeitimus ir leidžia grįžti prie ankstesnės versijos, jei iškilo problema arba kai atnaujinimas nepateikė laukto rezultato .

Laisvos programinės įrangos ekosistemoje plačiausiai naudojama versijų valdymo sistema vadinama „Apache Subversion“ (arba trumpiau - SVN). Naudodamiesi mod_dav_svn („Apache“ modulis Subversion), galite pasiekti „Subversion“ saugyklą naudodami HTTP ir žiniatinklio serverį.

Sakykime, pasiraitokime rankoves ir įdiekime šiuos įrankius RHEL/CentOS 7, Fedora 22-24, Debian 8/7 ir Ubuntu 16.04-15.04 serveryje. Savo bandymams naudosime „CentOS 7“ serverį su IP 192.168.0.100.

Kliento pusėje („Windows 7“ mašinoje) mes įdiegsime ir naudosime „TortoiseSVN“ (pagrįstą „Apache Subversion“) kaip sąsają su SVN.

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

1 žingsnis - SVN diegimas ir konfigūravimas „Linux“

Kaip ką tik minėjome, norėdami patekti į SVN saugyklą naudodamiesi žiniatinklio sąsaja, pasikliausime „Apache“. Jei jis dar neįdiegtas, būtinai pridėkite jį prie paketų sąrašo, kaip parodyta žemiau:

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

Diegiant „CentOS 7“, bus sukurtas „Apache“ konfigūracijos failas SVN kaip /etc/httpd/conf.modules.d/10-subversion.conf. Atidarykite failą ir pridėkite šį konfigūracijos bloką:

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

Pastaba: „Debian“/„Ubuntu“ turite pridėti žemiau esančias eilutes prie failo /etc/apache2/mods-enabled/dav_svn.conf .

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

„Debian“/„Ubuntu“ turite įgalinti „dav_svn Apache“ modulį:

# a2enmod dav_svn

Pora paaiškinimų:

  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 žingsnis - pridėkite leidžiamus vartotojus pasiekti SVN

Dabar naudosime „htpasswd“, kad sukurtume paskyrų, kurioms bus leista pasiekti SVN, slaptažodį. Tik pirmajam vartotojui reikės parinkties -c .

Leistinos paskyros ir „bcrypt“ užšifruoti slaptažodžiai ( -B ) bus saugomi aplanke/etc/httpd/subversion-auth raktų-reikšmių porose. Atkreipkite dėmesį, kad pagal šiandieninius standartus numatytasis MD5 arba SHA šifravimas, kurį naudoja „htpasswd“, laikomi nesaugiais.

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

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

Nepamirškite nustatyti tinkamos autentifikavimo failo nuosavybės teisės ir leidimų:

------------------ 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 žingsnis - pridėkite saugumą ir sukurkite SVN saugyklą

Kadangi prie SVN prisijungsite per žiniatinklio sąsają, turėsite leisti HTTP (ir pasirinktinai HTTPS) srautą per savo užkardą.

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

Perkraunant užkardos konfigūraciją naudojant --reload , nuolatiniai nustatymai įsigalioja nedelsiant.

Sukurkite pradinę SVN saugyklą, pavadintą „tecmint“:

# svnadmin create /websrv/svn/tecmint

Pakeiskite savininką ir grupės savininką, kad apache būtų rekursyviai:

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

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

Galiausiai turėsite pakeisti /websrv/svn/tecmint saugos kontekstą (atminkite, kad turėsite pakartoti šį veiksmą, jei nuspręsite vėliau kurti kitas saugyklas):

------------------ 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/

Pastaba: Paskutinės dvi komandos gali būti netaikomos, jei diegiate SVN VPS su išjungta SELinux.

Iš naujo paleiskite „Apache“ ir patikrinkite, ar saugykla yra.

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

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

Tada paleiskite žiniatinklio naršyklę ir nukreipkite ją į http://192.168.0.100/svn/tecmint . Įvedę tinkamo vartotojo kredencialus, kuriuos sukūrėme atlikdami 1 veiksmą, išvestis turėtų būti panaši į:

Šiuo metu mes nepridėjome jokio kodo prie savo saugyklos. Bet mes tai padarysime per minutę.

4 žingsnis - įdiekite „TortoiseSVN“ į „Windows 7“ klientą

Kaip jau minėjome įžangoje, „TortoiseSVN“ yra patogi „Apache Subversion“ sąsaja. Tai nemokama programinė įranga, licencijuota pagal GPL, ir ją galima atsisiųsti iš https://tortoisesvn.net/downloads.html.

Pasirinkite architektūrą (32 arba 64 bitų), kuri atitinka jūsų kompiuterį, ir prieš tęsdami įdiekite programą.

5 žingsnis - nustatykite SVN saugyklą kliento mašinoje

Šiame žingsnyje dokumentų viduje naudosime aplanką pavadinimu webapp . Šiame aplanke yra HTML failas ir du aplankai, pavadinti scenarijais ir stiliais su „Javascript“ ir CSS failais (atitinkamai „script.js“ ir „styles.css“), kuriuos norime pridėti prie versijų valdymo.

Dešiniuoju pelės mygtuku spustelėkite žiniatinklio programą ir pasirinkite „SVN Checkout“. Tai sukurs vietinę nuotolinės saugyklos kopiją (kuri šiuo metu tuščia) ir inicijuos aplanką, skirtą valdyti versiją:

Į saugyklos URL įveskite http://192.168.0.100/svn/tecmint ir įsitikinkite, kad vietinis atsiskaitymo katalogas išlieka tas pats, tada spustelėkite Gerai:

Įveskite vartotojo vardą ir slaptažodį (žr. 2 veiksmą) ir spustelėkite Gerai:

Jums bus paklausta, ar norite atsiskaityti ne tuščiame kataloge. Patvirtinkite, kad tęstumėte mokėjimą. Kai jis bus baigtas, šalia aplanko pavadinimo pasirodys žalia varnelė:

6 žingsnis - atlikite pakeitimus ir įdėkite failus į nuotolinę SVN saugyklą

Dešiniuoju pelės mygtuku dar kartą spustelėkite webapp ir pasirinkite Įvykdyti šį kartą. Tada parašykite aprašomąjį komentarą, kad vėliau nustatytumėte šį įsipareigojimą, ir patikrinkite failus ir aplankus, kuriuos norite įdiegti į saugyklą. Galiausiai spustelėkite Gerai:

Priklausomai nuo failų dydžio, įsipareigojimas neturėtų užtrukti ilgiau nei minutę. Kai jis bus baigtas, pamatysite, kad dabar vykdome 1 pakeitimą, kuris atitinka versiją ir failus, nurodytus žiniatinklio sąsajoje:

Jei prie tų pačių failų dirba keli žmonės, norėsite atnaujinti vietinę kopiją, kad galėtumėte naudoti naujausią versiją. Tai galite padaryti dešiniuoju pelės mygtuku spustelėdami webapp ir kontekstiniame meniu pasirinkdami Atnaujinti.

Sveikiname! Jūs sėkmingai sukonfigūravote SVN serverį ir atlikote/atnaujinote paprastą projektą valdydami versiją.

Santrauka

Šiame straipsnyje mes paaiškinome, kaip įdiegti ir konfigūruoti „Apache Subversion“ saugyklos serverį „CentOS 7“ serveryje ir kaip atlikti šios saugyklos pakeitimus naudojant „TortoiseSVN“.

Atkreipkite dėmesį, kad SVN ir „TortoiseSVN“ yra daug daugiau nei tai, ką galime tinkamai aprėpti čia (ypač kaip grįžti prie ankstesnių pakeitimų), todėl norėdami gauti daugiau informacijos ir konfigūracijos atvejus, galite kreiptis į oficialius dokumentus („TortoiseSVN“).

Kaip visada, nedvejodami praneškite mums, jei turite klausimų! Jei norite bet kada susisiekti, drąsiai naudokitės žemiau esančia komentaro forma.