Mwongozo wa Mwisho wa Kuweka Ubadilishaji wa Apache SVN na TortoiseSVN kwa Udhibiti wa Toleo


Ikiwa kazi yako inahitaji kushughulikia hati, kurasa za wavuti, na aina nyingine za faili zinazosasishwa mara kwa mara, unaweza kutaka kutumia utaratibu wa udhibiti wa toleo ikiwa hufanyi hivyo tayari.

Miongoni mwa mambo mengine, hii hukuruhusu (na kikundi cha washiriki wanaowezekana pia) kufuatilia mabadiliko yaliyofanywa kwa faili fulani, na hukuruhusu kurudi kwenye toleo la awali ikiwa kuna tatizo au wakati sasisho halijatoa matokeo yanayotarajiwa. .

Katika mfumo wa ikolojia wa programu huria, mfumo wa udhibiti wa toleo unaotumiwa zaidi unaitwa Apache Subversion (au SVN kwa ufupi). Kwa usaidizi wa mod_dav_svn (moduli ya Apache ya Ubadilishaji), unaweza kufikia hazina ya Ubadilishaji kwa kutumia HTTP na seva ya wavuti.

Hiyo ilisema, wacha tukunja mikono yetu na tusakinishe zana hizi kwenye seva ya RHEL/CentOS 7, Fedora 22-24, Debian 8/7 na Ubuntu 16.04-15.04. Kwa majaribio yetu tutatumia seva ya CentOS 7 yenye IP 192.168.0.100.

Kwa upande wa mteja (mashine ya Windows 7), tutasakinisha na kutumia TortoiseSVN (ambayo inategemea Ubadilishaji wa Apache) kama kiolesura cha SVN.

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

Hatua ya 1 - Kufunga na Kusanidi SVN kwenye Linux

Kama tulivyosema hivi punde, tutategemea Apache ili kupata hazina ya SVN kwa kutumia kiolesura cha wavuti. Ikiwa haijasakinishwa tayari, hakikisha umeiongeza kwenye orodha ya vifurushi kama inavyoonyeshwa hapa chini:

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

Wakati wa usakinishaji kwenye CentOS 7, faili ya usanidi ya Apache ya SVN itaundwa kama /etc/httpd/conf.modules.d/10-subversion.conf. Fungua faili na ongeza kizuizi kifuatacho cha usanidi:

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

Kumbuka: Kwenye Debian/Ubuntu unahitaji kuongeza mistari hapa chini kwenye faili ya /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>

Kwenye Debian/Ubuntu, unahitaji kuwezesha moduli ya dav_svn Apache:

# a2enmod dav_svn

Ufafanuzi kadhaa:

  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.

Hatua ya 2 - Ongeza Watumiaji Wanaoruhusiwa Kupata SVN

Sasa tutatumia htpasswd kuunda nenosiri kwa akaunti ambazo zitaruhusiwa kufikia SVN. Kwa mtumiaji wa kwanza pekee, tutahitaji chaguo la -c.

Akaunti zinazoruhusiwa na manenosiri yaliyosimbwa kwa njia fiche (-B) yatahifadhiwa katika /etc/httpd/subversion-auth katika jozi za thamani-msingi. Kumbuka kuwa kulingana na viwango vya leo, usimbaji fiche chaguo-msingi wa MD5 au SHA unaotumiwa na htpasswd unachukuliwa kuwa si salama.

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

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

Usisahau kuweka umiliki sahihi na ruhusa kwa faili ya uthibitishaji:

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

Hatua ya 3 - Ongeza Usalama na Unda Hifadhi ya SVN

Kwa kuwa utakuwa unafikia SVN kupitia kiolesura cha wavuti, utahitaji kuruhusu trafiki ya HTTP (na kwa hiari HTTPS) kupitia ngome yako.

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

Kwa kupakia upya usanidi wa ngome kwa --pakia upya, mipangilio ya kudumu itatekelezwa mara moja.

Unda hazina ya awali ya SVN inayoitwa tecmint:

# svnadmin create /websrv/svn/tecmint

Badilisha mmiliki na mmiliki wa kikundi kuwa apache kwa kujirudia:

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

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

Hatimaye, utahitaji kubadilisha muktadha wa usalama wa /websrv/svn/tecmint (kumbuka kwamba itabidi kurudia hatua hii ikiwa utaamua kuunda hazina zingine baadaye):

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

Kumbuka: Amri mbili za mwisho haziwezi kutumika ikiwa unasakinisha SVN kwenye VPS na SELinux imezimwa.

Anzisha tena Apache na uhakikishe kuwa hazina inapatikana.

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

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

Kisha uzindua kivinjari na uelekeze kwa http://192.168.0.100/svn/tecmint. Baada ya kuweka kitambulisho cha mtumiaji halali tulichounda katika Hatua ya 1, matokeo yanapaswa kuwa sawa na:

Kwa wakati huu hatujaongeza nambari yoyote kwenye hazina yetu. Lakini tutafanya hivyo kwa dakika moja.

Hatua ya 4 - Sakinisha TortoiseSVN kwenye Mteja wa Windows 7

Kama tulivyotaja kwenye utangulizi, TortoiseSVN ni kiolesura kinachofaa kwa mtumiaji kwa Ubadilishaji wa Apache. Ni Programu Isiyolipishwa iliyopewa leseni chini ya GPL na inaweza kupakuliwa kutoka https://tortoisesvn.net/downloads.html.

Chagua usanifu (32 au 64-bit) unaolingana na mashine yako na usakinishe programu kabla ya kuendelea.

Hatua ya 5 - Sanidi Hifadhi ya SVN kwenye Mashine ya Mteja

Katika hatua hii tutatumia folda inayoitwa webapp ndani ya Hati. Folda hii ina faili ya HTML, na folda mbili zinazoitwa hati na mitindo yenye Javascript na faili ya CSS (script.js na styles.css, mtawalia) ambazo tunataka kuongeza kwenye udhibiti wa toleo.

Bonyeza kulia kwenye programu ya wavuti na uchague Malipo ya SVN. Hii itaunda nakala ya ndani ya hazina ya mbali (ambayo ni tupu kwa sasa) na kuanzisha folda kwa udhibiti wa toleo:

Katika URL ya hazina, andika http://192.168.0.100/svn/tecmint na uhakikishe kuwa saraka ya ulipaji ya ndani inasalia sawa, kisha ubofye SAWA:

Ingiza jina la mtumiaji na nenosiri (rejelea Hatua ya 2) na ubofye Sawa:

Utaulizwa ikiwa unataka kulipa katika saraka isiyo tupu. Thibitisha ili kuendelea na malipo. Mara tu itakapokamilika, alama ya tiki ya kijani itaonekana karibu na jina la folda:

Hatua ya 6 - Fanya Mabadiliko na Upeleke Faili kwenye Hifadhi ya Mbali ya SVN

Bofya kulia kwenye webapp tena na uchague Jitume wakati huu. Ifuatayo, andika maoni ya kufafanua ili kutambua ahadi hii baadaye, na angalia faili na folda unazotaka kupeleka kwenye hazina. Hatimaye, bofya Sawa:

Kulingana na saizi ya faili, ahadi haipaswi kuchukua zaidi ya dakika. Ikikamilika, utaona kwamba sasa tuko kwenye marekebisho ya 1, ambayo yanalingana na toleo na faili zilizoorodheshwa kwenye kiolesura cha wavuti:

Iwapo kuna watu kadhaa wanaofanya kazi kwenye faili sawa, utataka Kusasisha nakala yako ya ndani ili kupata toleo jipya zaidi la kufanyia kazi. Unaweza kufanya hivyo kwa kubofya kulia kwenye webapp na kuchagua Sasisha kutoka kwa menyu ya muktadha.

Hongera! Umefanikiwa kusanidi seva ya SVN na kujitolea/kusasisha mradi rahisi chini ya udhibiti wa toleo.

Muhtasari

Katika nakala hii tumeelezea jinsi ya kusakinisha na kusanidi seva ya hazina ya Ubadilishaji wa Apache kwenye seva ya CentOS 7, na jinsi ya kufanya mabadiliko kwenye hazina hiyo kwa kutumia TortoiseSVN.

Tafadhali kumbuka kuwa kuna mengi zaidi kwa SVN na TortoiseSVN kuliko yale tunayoweza kushughulikia vya kutosha hapa (haswa jinsi ya kurudi kwenye masahihisho ya awali), kwa hivyo unaweza kutaka kurejelea hati rasmi (TortoiseSVN) kwa habari zaidi na kesi za usanidi.

Kama kawaida, usisite kutujulisha ikiwa una maswali yoyote! Jisikie huru kutumia fomu ya maoni hapa chini ili kuwasiliana nasi wakati wowote.