Wersiýa gözegçilik üçin Apache Subversion SVN we TortoiseSVN-i gurmak üçin iň soňky gollanma


Işiňiz resminamalary, web sahypalaryny we yzygiderli täzelenýän beýleki görnüşli faýllary talap edýän bolsa, wersiýa gözegçilik mehanizmini eýýäm etmeseňiz ulanyp bilersiňiz.

Beýleki zatlaryň arasynda, bu size (we potensial hyzmatdaşlar toparyna) berlen faýlda edilen üýtgeşmeleri yzarlamaga mümkinçilik berýär we bir mesele ýüze çyksa ýa-da täzelenme garaşylýan netijäni bermedik ýagdaýynda öňki wersiýa dolanmaga mümkinçilik berýär. .

Mugt programma üpjünçiligi ekosistemasynda iň köp ulanylýan wersiýa dolandyryş ulgamyna Apache Subversion (ýa-da gysgaça SVN) diýilýär. Mod_dav_svn (Apache-iň Subversion moduly) kömegi bilen, HTTP we web serweri ulanyp, Subversion ammaryna girip bilersiňiz.

Saidagny, ýeňlerimizi ýygnap, bu gurallary RHEL/CentOS 7, Fedora 22-24, Debian 8/7 we Ubuntu 16.04-15.04 serwerine guralyň. Synaglarymyz üçin IP 192.168.0.100 bolan CentOS 7 serwerini ulanarys.

Müşderi tarapynda (Windows 7 maşyn), SVN-e interfeýs hökmünde TortoiseSVN (Apache Subversion-a esaslanýar) gurarys we ulanarys.

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

1-nji ädim - Linux-da SVN-i gurmak we sazlamak

Justaňy belläp geçişimiz ýaly, web interfeýsi ulanyp, SVN ammaryna girmek üçin Apache bil baglarys. Eger eýýäm gurulmadyk bolsa, aşakda görkezilişi ýaly paketleriň sanawyna goşuň:

------------------ 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-de gurlanda, SVN üçin Apache konfigurasiýa faýly /etc/httpd/conf.modules.d/10-subversion.conf görnüşinde dörediler. Faýly açyň we aşakdaky konfigurasiýa blokyny goşuň:

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

Bellik: Debian/Ubuntu-da aşakdaky setirleri /etc/apache2/mods-enabled/dav_svn.conf faýlyna goşmaly.

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

Debian/Ubuntu-da dav_svn Apache modulyny işletmeli:

# a2enmod dav_svn

Birnäçe düşündiriş:

  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-nji ädim - SVN-e girmäge rugsat berlen ulanyjylary goşuň

Indi SVN-e girmäge rugsat beriljek hasaplar üçin parol döretmek üçin htpasswd ulanarys. Diňe ilkinji ulanyjy üçin -c opsiýasy gerek bolar.

Rugsat berlen hasaplar we şifrlenen kodlanan parollar ( -B ) açar baha jübütlerinde/etc/httpd/subversion-auth-da saklanar. Üns beriň, şu günki ülňüler boýunça htpasswd tarapyndan ulanylýan standart MD5 ýa-da SHA şifrlemesi howpsuz däl hasaplanýar.

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

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

Hakyky eýeçilik hukugyny we tassyklama faýlyna rugsat bermegi ýatdan çykarmaň:

------------------ 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-nji ädim - Howpsuzlyk goşuň we SVN ammaryny dörediň

Web interfeýsi arkaly SVN-e girip biljekdigiňiz sebäpli, gorag diwaryňyz arkaly HTTP (we islege görä HTTPS) traffigine rugsat bermeli bolarsyňyz.

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

Gorag diwary konfigurasiýasyny --reload bilen täzeden ýüklemek bilen hemişelik sazlamalar derrew güýje girýär.

Tekmint atly başlangyç SVN ammaryny dörediň:

# svnadmin create /websrv/svn/tecmint

Eýesini we toparyň eýesini yzygiderli apache edip üýtgediň:

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

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

Netijede, /websrv/svn/tecmint howpsuzlyk kontekstini üýtgetmeli bolarsyňyz (soňundan beýleki ammarlary döretmek kararyna gelseňiz bu ädimi gaýtalamaly bolarsyňyz):

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

Bellik: SELinux ýapyk VPS-de SVN gurýan bolsaňyz, soňky iki buýruk ulanylmaz.

Apache-i täzeden açyň we ammaryň bardygyny barlaň.

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

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

Soňra web brauzerini işe giriziň we http://192.168.0.100/svn/tecmint görkeziň. 1-nji ädimde döreden hakyky ulanyjymyz üçin şahsyýet maglumatlaryny girizenimizden soň, çykyş aşakdaky ýaly bolmaly:

Şu wagt ammarymyza hiç hili kod goşmadyk. Emma muny bir minutdan ýerine ýetireris.

4-nji ädim - TortoiseSVN-i Windows 7 müşderisine guruň

Girişde belläp geçişimiz ýaly, TortoiseSVN Apache Subversion üçin ulanyjy üçin amatly interfeýsdir. GPL tarapyndan ygtyýarlandyrylan mugt programma üpjünçiligi we https://tortoisesvn.net/downloads.html sahypasyndan göçürip alyp bilersiňiz.

Enjamyňyza laýyk gelýän arhitekturany (32 ýa-da 64-bit) saýlaň we dowam etmezden ozal programmany guruň.

5-nji ädim - Müşderi maşynynda SVN ammaryny guruň

Bu ädimde Resminamalaryň içinde webapp atly bukjany ulanarys. Bu bukjada HTML faýly we wersiýa dolandyryşyna goşmak isleýän Javascript we CSS faýly (degişlilikde script.js we styles.css) bolan skriptler we stiller atly iki bukja bar.

Webapp-a sag basyň we SVN Checkout saýlaň. Bu uzakdaky ammaryň ýerli nusgasyny döreder (häzirki wagtda boş) we wersiýa gözegçilik üçin bukjany işe girizer:

Ammaryň URL-sine http://192.168.0.100/svn/tecmint ýazyň we ýerli gözegçilik bukjasynyň üýtgewsizdigine göz ýetiriň, soňra OK basyň:

Ulanyjy adyny we parolyny giriziň (2-nji ädime serediň) we OK basyň:

Boş däl kataloga girmek isleýärsiňizmi diýip soralar. Hasabyňy dowam etdirmegi tassykla. Tamam bolansoň, bukjanyň adynyň ýanynda ýaşyl bellik peýda bolar:

6-njy ädim - Üýtgeşmeleri ýerine ýetiriň we SVN ammaryna uzakdaky faýllary ýerleşdiriň

webapp -a ýene bir gezek basyň we bu gezek Commit saýlaň. Ondan soň, bu borçnamany soň kesgitlemek üçin düşündirişli teswir ýazyň we ammarda ýerleşdirmek isleýän faýllaryňyzy we bukjalaryňyzy barlaň. Ahyrynda, OK basyň:

Faýllaryň ululygyna baglylykda, bir minutdan köp wagt gerek däl. Bu zatlar gutarandan soň, web interfeýsinde görkezilen wersiýa we faýllara gabat gelýän 1-nji wersiýadygymyzy görersiňiz:

Şol bir faýllarda birnäçe adam işleýän bolsa, iň täze wersiýasynyň üstünde işlemek üçin ýerli nusgasyny täzelemek islärsiňiz. Muny webapp düwmesine sag basyp we kontekst menýusyndan Täzelenmäni saýlap bilersiňiz.

Gutlaýarys! SVN serwerini üstünlikli gurnadyňyz we wersiýa gözegçiligi astynda ýönekeý bir taslamany ýerine ýetirdiňiz/täzelediňiz.

Gysgaça mazmun

Bu makalada CentOS 7 serwerinde Apache Subversion ammar serwerini nädip gurmalydygyny we sazlamalydygyny we TortoiseSVN ulanyp, şol ammarda nädip üýtgeşmeler girizmelidigini düşündirdik.

SVN we TortoiseSVN-de bu ýerde ýeterlik derejede örtüp boljak zatlarymyzdan has köp zadyň bardygyny ýadyňyzdan çykarmaň (esasanam öňki wersiýalara nädip dolanyp barmaly), şonuň üçin has giňişleýin maglumat we konfigurasiýa ýagdaýlary üçin resmi resminamalara (TortoiseSVN) ýüz tutup bilersiňiz.

Hemişe bolşy ýaly, soraglaryňyz bar bolsa bize habar bermekden çekinmäň! Islän wagtyňyz bize ýetmek üçin aşakdaky teswir formasyny ulanyp bilersiňiz.