Il-Gwida Ultimate għat-Twaqqif ta' Apache Subversion SVN u TortoiseSVN Għall-Kontroll tal-Verżjoni


Jekk ix-xogħol tiegħek jeħtieġ li timmaniġġja dokumenti, paġni tal-web, u tip ieħor ta' fajls li jiġu aġġornati regolarment, tista' tkun trid tuża mekkaniżmu ta' kontroll tal-verżjoni jekk ma tkunx qed tagħmel dan diġà.

Fost affarijiet oħra, dan jippermettilek (u grupp ta’ kollaboraturi potenzjali wkoll) issegwi l-bidliet li saru f’fajl partikolari, u tħallik terġa’ lura għal verżjoni preċedenti jekk tiltaqa’ ma’ xi kwistjoni jew meta aġġornament ma jkunx ipproduċiet ir-riżultat mistenni. .

Fl-ekosistema tas-softwer b'xejn, is-sistema ta 'kontroll tal-verżjoni l-aktar użata tissejjaħ Apache Subversion (jew SVN fil-qosor). Bl-għajnuna ta 'mod_dav_svn (il-modulu ta' Apache għal Subversion), tista 'taċċessa repożitorju ta' Subversion billi tuża HTTP u server tal-web.

Cela dit, ejja nxammru l-kmiem tagħna u ninstallaw dawn l-għodod fuq server RHEL/CentOS 7, Fedora 22-24, Debian 8/7 u Ubuntu 16.04-15.04. Għat-testijiet tagħna se nużaw server CentOS 7 b'IP 192.168.0.100.

Fuq in-naħa tal-klijent (magna Windows 7), aħna se ninstallaw u nużaw TortoiseSVN (li hija bbażata fuq Apache Subversion) bħala interface għal SVN.

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

Pass 1 - Installazzjoni u Konfigurazzjoni ta 'SVN fuq Linux

Kif għadna kif semmejna, aħna ser niddependu fuq Apache sabiex naċċessaw ir-repożitorju SVN billi tuża interface tal-web. Jekk ma tkunx diġà installata, kun żgur li żżidha mal-lista ta 'pakketti kif muri hawn taħt:

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

Waqt l-installazzjoni fuq CentOS 7, se jinħoloq fajl ta 'konfigurazzjoni Apache għal SVN bħala /etc/httpd/conf.modules.d/10-subversion.conf. Iftaħ il-fajl u żid il-blokk tal-konfigurazzjoni li ġej:

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

Nota: Fuq Debian/Ubuntu trid iżżid il-linji hawn taħt mal-fajl /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>

Fuq Debian/Ubuntu, għandek bżonn tattiva l-modulu Apache dav_svn:

# a2enmod dav_svn

Koppja ta' kjarifiki:

  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.

Pass 2 – Żid Utenti Permessi biex Aċċess SVN

Issa se nużaw htpasswd biex noħolqu password għall-kontijiet li se jitħallew jaċċessaw SVN. Għall-ewwel utent biss, ikollna bżonn l-għażla -c.

Il-kontijiet permessi u l-passwords bcrypt-encrypted (-B) se jinħażnu f'/etc/httpd/subversion-auth f'pari ewlenin-valur. Innota li mill-istandards tal-lum, l-encryption default MD5 jew SHA użata minn htpasswd huma kkunsidrati mhux siguri.

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

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

Tinsiex issettja s-sjieda u l-permessi t-tajba għall-fajl ta' awtentikazzjoni:

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

Pass 3 – Żid is-Sigurtà u Oħloq Repożitorju SVN

Peress li se tkun qed taċċessa SVN permezz ta' interface tal-web, ser ikollok bżonn tippermetti traffiku HTTP (u optionalment HTTPS) permezz tal-firewall tiegħek.

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

Billi terġa 'tagħbija l-konfigurazzjoni tal-firewall b'--reload, is-settings permanenti jiddaħħlu fis-seħħ immedjatament.

Oħloq repożitorju inizjali SVN imsejjaħ tecmint:

# svnadmin create /websrv/svn/tecmint

Ibdel is-sid u s-sid tal-grupp għal apache b'mod rikkursiv:

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

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

Fl-aħħarnett, ikollok bżonn tibdel il-kuntest tas-sigurtà ta' /websrv/svn/tecmint (innota li jkollok tirrepeti dan il-pass jekk tiddeċiedi li toħloq repożitorji oħra aktar tard):

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

Nota: L-aħħar żewġ kmandi jistgħu ma japplikawx jekk qed tinstalla SVN fuq VPS b'SELinux diżattivat.

Ibda mill-ġdid Apache u ivverifika li r-repożitorju huwa disponibbli.

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

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

Imbagħad iniedi web browser u ppuntah lejn http://192.168.0.100/svn/tecmint. Wara li ddaħħal il-kredenzjali għall-utent validu li ħloqna fil-Pass 1, l-output għandu jkun simili għal:

F'dan il-punt aħna ma żidna l-ebda kodiċi għar-repożitorju tagħna. Imma dan se nagħmluh f'minuta.

Pass 4 – Installa TortoiseSVN fil-Klijent Windows 7

Kif semmejna fl-introduzzjoni, TortoiseSVN huwa interface faċli għall-utent għal Apache Subversion. Huwa Software Ħieles liċenzjat taħt il-GPL u jista' jitniżżel minn https://tortoisesvn.net/downloads.html.

Agħżel l-arkitettura (32 jew 64-bit) li tikkorrispondi mal-magna tiegħek u installa l-programm qabel ma tipproċedi.

Pass 5 – Issettja Repożitorju SVN fuq il-Magni tal-Klijent

F'dan il-pass se nużaw folder bl-isem webapp ġewwa Dokumenti. Dan il-folder fih fajl HTML, u żewġ folders bl-isem ta' skripts u stili b'Javascript u fajl CSS (script.js u styles.css, rispettivament) li rridu nżidu mal-kontroll tal-verżjoni.

Ikklikkja fuq il-webapp bil-lemin u agħżel SVN Checkout. Dan se joħloq kopja lokali tar-repożitorju remot (li huwa vojt fil-mument) u inizjalizza l-folder għall-kontroll tal-verżjoni:

Fl-URL tar-repożitorju, ittajpja http://192.168.0.100/svn/tecmint u kun żgur li d-direttorju tal-checkout lokali jibqa l-istess, imbagħad ikklikkja OK:

Daħħal l-isem tal-utent u l-password (irreferi għall-Pass 2) u kklikkja OK:

Inti tiġi mistoqsi jekk tridx tagħmel checkout f'direttorju mhux vojt. Ikkonferma li tipproċedi biċ-checkout. Ladarba tkun kompluta, se tidher marka ħadra ħdejn l-isem tal-folder:

Pass 6 – Ikkommetti Bidliet u Skjera Fajls għar-Repożitorju SVN Remot

Ikklikkja bil-lemin fuq webapp għal darb'oħra u agħżel Kommit din id-darba. Sussegwentement, ikteb kumment deskrittiv biex aktar tard tidentifika dan l-impenn, u ċċekkja l-fajls u l-folders li trid tuża fir-repożitorju. Fl-aħħarnett, ikklikkja OK:

Skont id-daqs tal-fajls, il-kommit m'għandux jieħu aktar minn minuta. Meta tkun lesta, tara li issa qegħdin fuq ir-reviżjoni 1, li taqbel mal-verżjoni u l-fajls elenkati fl-interface tal-web:

Jekk hemm bosta nies li jaħdmu fuq l-istess fajls, tkun trid Taġġorna l-kopja lokali tiegħek sabiex ikollok l-aħħar verżjoni disponibbli biex taħdem fuqha. Tista' tagħmel dan billi tikklikkja bil-lemin fuq webapp u tagħżel Aġġorna mill-menu tal-kuntest.

Prosit! Int waqqaft b'suċċess server SVN u kkommettijt/aġġornajt proġett sempliċi taħt kontroll tal-verżjoni.

Sommarju

F'dan l-artikolu spjegajna kif tinstalla u tikkonfigura server tar-repożitorju Apache Subversion fuq server CentOS 7, u kif tikkommetti bidliet f'dak ir-repożitorju billi tuża TortoiseSVN.

Jekk jogħġbok innota li hemm ħafna aktar għal SVN u TortoiseSVN minn dak li nistgħu nkopru b'mod adegwat hawn (speċjalment kif terġa 'lura għar-reviżjonijiet preċedenti), għalhekk tista' tkun trid tirreferi għad-dokumenti uffiċjali (TortoiseSVN) għal aktar informazzjoni u każijiet ta' konfigurazzjoni.

Bħal dejjem, toqgħodx lura milli tgħarrafna jekk għandek xi mistoqsijiet! Ħossok liberu li tuża l-formola tal-kummenti hawn taħt biex tilħaqna f'kull ħin.