Galvenais Apache Subversion SVN un TortoiseSVN iestatīšanas ceļvedis versiju kontrolei


Ja jūsu darbs prasa dokumentu, tīmekļa lapu un cita veida failu apstrādi, kas tiek regulāri atjaunināta, ieteicams izmantot versiju kontroles mehānismu, ja to vēl nedarāt.

Cita starpā tas ļauj jums (un arī potenciālo līdzstrādnieku grupai) izsekot noteiktā failā veiktās izmaiņas un ļauj atgriezties pie iepriekšējās versijas, ja rodas problēma vai ja atjauninājums nav devis gaidīto rezultātu .

Brīvās programmatūras ekosistēmā visplašāk izmantoto versiju vadības sistēmu sauc par Apache Subversion (jeb saīsināti SVN). Izmantojot mod_dav_svn (Apache’s Subversion modulis), varat piekļūt Subversion krātuvei, izmantojot HTTP un tīmekļa serveri.

Tas nozīmē, ka saritināsim piedurknes un instalēsim šos rīkus RHEL/CentOS 7, Fedora 22-24, Debian 8/7 un Ubuntu 16.04-15.04 serverī. Pārbaudēm mēs izmantosim CentOS 7 serveri ar IP 192.168.0.100.

Klienta pusē (Windows 7 mašīna) mēs instalēsim un izmantosim TortoiseSVN (kura pamatā ir Apache Subversion) kā saskarni SVN.

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

1. solis - SVN instalēšana un konfigurēšana Linux

Kā mēs tikko minējām, mēs paļausimies uz Apache, lai piekļūtu SVN krātuvei, izmantojot tīmekļa saskarni. Ja tas vēl nav instalēts, noteikti pievienojiet to paku sarakstam, kā parādīts zemāk:

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

Instalēšanas laikā CentOS 7 tiks izveidots Apache konfigurācijas fails SVN kā /etc/httpd/conf.modules.d/10-subversion.conf. Atveriet failu un pievienojiet šādu konfigurācijas bloku:

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

Piezīme: Debian/Ubuntu failā /etc/apache2/mods-enabled/dav_svn.conf jāpievieno zemāk esošās rindas.

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

Debian/Ubuntu ir jāiespējo dav_svn Apache modulis:

# a2enmod dav_svn

Pāris precizējumi:

  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. solis - pievienojiet atļautos lietotājus, lai piekļūtu SVN

Tagad mēs izmantosim htpasswd, lai izveidotu paroli kontiem, kuriem būs atļauts piekļūt SVN. Tikai pirmajam lietotājam būs nepieciešama opcija -c .

Atļautie konti un bcrypt šifrētās paroles ( -B ) tiks saglabāti mapē/etc/httpd/subversion-auth atslēgas vērtību pāros. Ņemiet vērā, ka saskaņā ar mūsdienu standartiem noklusējuma MD5 vai SHA šifrēšana, ko izmanto htpasswd, tiek uzskatīta par nedrošu.

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

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

Neaizmirstiet iestatīt pareizās autentifikācijas faila īpašumtiesības un atļaujas:

------------------ 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. solis - pievienojiet drošību un izveidojiet SVN krātuvi

Tā kā piekļūsiet SVN, izmantojot tīmekļa saskarni, jums būs jāļauj HTTP (un pēc izvēles arī HTTPS) trafika caur ugunsmūri.

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

Pārlādējot ugunsmūra konfigurāciju ar --reload , pastāvīgie iestatījumi tiek nekavējoties ieviesti.

Izveidojiet sākotnējo SVN repozitoriju ar nosaukumu tecmint:

# svnadmin create /websrv/svn/tecmint

Mainiet īpašnieku un grupas īpašnieku, lai veiktu rekursīvu apache:

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

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

Visbeidzot, jums būs jāmaina /websrv/svn/tecmint drošības konteksts (ņemiet vērā, ka šī darbība būs jāatkārto, ja vēlāk nolemjat izveidot citas krātuves):

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

Piezīme. Divas pēdējās komandas var nebūt piemērojamas, ja instalējat SVN VPS ar atspējotu SELinux.

Restartējiet Apache un pārbaudiet, vai krātuve ir pieejama.

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

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

Pēc tam palaidiet tīmekļa pārlūkprogrammu un norādiet uz http://192.168.0.100/svn/tecmint . Pēc derīgā lietotāja akreditācijas datu ievadīšanas, ko izveidojām 1. darbībā, izvadam jābūt līdzīgam:

Šajā brīdī mēs savam krātuvei neesam pievienojuši nevienu kodu. Bet mēs to izdarīsim minūtes laikā.

4. solis - instalējiet TortoiseSVN Windows 7 klientā

Kā mēs jau minējām ievadā, TortoiseSVN ir lietotājam draudzīgs interfeiss Apache Subversion. Tā ir bezmaksas programmatūra, kas licencēta saskaņā ar GPL, un to var lejupielādēt vietnē https://tortoisesvn.net/downloads.html.

Pirms turpināt, izvēlieties arhitektūru (32 vai 64 bitu), kas atbilst jūsu datoram, un instalējiet programmu.

5. solis - SVN krātuves iestatīšana klienta mašīnā

Šajā solī mēs dokumentos izmantosim mapi ar nosaukumu webapp . Šajā mapē ir HTML fails un divas mapes ar nosaukumu skripti un stili ar Javascript un CSS failu (attiecīgi script.js un styles.css), kurus mēs vēlamies pievienot versiju kontrolei.

Ar peles labo pogu noklikšķiniet uz tīmekļa lietojumprogrammas un izvēlieties SVN Checkout. Tas izveidos attālās repozitorija lokālo kopiju (kas pašlaik ir tukša) un inicializēs mapi versiju kontrolei:

Krātuves URL ierakstiet http://192.168.0.100/svn/tecmint un pārliecinieties, ka vietējā norēķinu direktorija paliek nemainīga, pēc tam noklikšķiniet uz Labi:

Ievadiet lietotājvārdu un paroli (skatiet 2. darbību) un noklikšķiniet uz Labi:

Jums tiks vaicāts, vai vēlaties izrakstīties direktorijā, kas nav tukša. Apstipriniet, lai turpinātu izrakstīšanos. Kad tas būs pabeigts, blakus mapes nosaukumam tiks parādīta zaļa atzīme:

6. solis - veiciet izmaiņas un izvietojiet failus attālajā SVN krātuvē

Vēlreiz ar peles labo pogu noklikšķiniet uz webapp un izvēlieties Apņemties šoreiz. Pēc tam uzrakstiet aprakstošu komentāru, lai vēlāk identificētu šo saistību, un pārbaudiet failus un mapes, kuras vēlaties izvietot repozitorijā. Visbeidzot, noklikšķiniet uz Labi:

Atkarībā no failu lieluma apņemšanās nedrīkst aizņemt vairāk nekā minūti. Kad tas būs pabeigts, jūs redzēsiet, ka tagad mēs strādājam ar 1. versiju, kas atbilst tīmekļa saskarnē norādītajai versijai un failiem:

Ja vienā un tajā pašā failā strādā vairāki cilvēki, ieteicams atjaunināt vietējo kopiju, lai būtu pieejama jaunākā versija. To var izdarīt, ar peles labo pogu noklikšķinot uz webapp un konteksta izvēlnē izvēloties Atjaunināt.

Apsveicam! Jūs esat veiksmīgi iestatījis SVN serveri un veicis/atjauninājis vienkāršu projektu, kontrolējot versiju.

Kopsavilkums

Šajā rakstā mēs esam paskaidrojuši, kā instalēt un konfigurēt Apache Subversion repozitorija serveri CentOS 7 serverī un kā veikt izmaiņas šajā repozitorijā, izmantojot TortoiseSVN.

Lūdzu, ņemiet vērā, ka SVN un TortoiseSVN ir daudz vairāk nekā tas, ko mēs šeit varam pienācīgi aplūkot (īpaši tas, kā atgriezties pie iepriekšējām versijām), tāpēc, lai iegūtu plašāku informāciju un konfigurācijas gadījumus, ieteicams atsaukties uz oficiālajiem dokumentiem (TortoiseSVN).

Kā vienmēr, nekavējoties sazinieties ar mums, ja jums ir kādi jautājumi! Lai sazinātos ar mums jebkurā laikā, izmantojiet zemāk esošo komentāru veidlapu.