Dacă munca dvs. necesită gestionarea documentelor, a paginilor web și a altor tipuri de fișiere care sunt actualizate în mod regulat, poate doriți să utilizați un mecanism de control al versiunilor dacă nu faceți acest lucru deja.
Printre altele, acest lucru vă permite (și un grup de potențiali colaboratori, de asemenea) să urmăriți modificările aduse unui anumit fișier, și vă permite să reveniți la o versiune anterioară dacă se întâlnește o problemă sau când o actualizare nu a produs cea așteptată rezultat.
În ecosistemul software liber, se numește cel mai utilizat sistem de control al versiunilor Apache Subversion (sau SVN pe scurt). Cu ajutorul mod_dav_svn (Modulul Apache pentru Subversion), puteți accesa un depozit Subversion utilizând HTTP și un server web.
Acestea fiind spuse, să ne suflecăm mânecile și să instalăm aceste instrumente pe un RHEL / CentOS 7, Fedora 22-24, Debian 8/7 și Ubuntu 16.04-15.04 Server. Pentru testele noastre vom folosi un CentOS 7 server cu IP 192.168.0.100.
Din partea clientului (a Windows 7 mașină), vom instala și utiliza Broasca testoasaSVN (care se bazează pe Apache Subversion) ca o interfață cu SVN.
Server - CentOS 7Adresa IP - 192.168.0.100Client - Windows 7
După cum tocmai am menționat, ne vom baza pe Apache pentru a accesa depozitul SVN folosind o interfață web. Dacă nu este deja instalat, asigurați-vă că îl adăugați la lista de pachete așa cum se arată mai jos:
Pe CentOS / RHEL / Fedora # yum update && yum install mod_dav_svn subversion httpd -y Pe Debian / Ubuntu # apt-get update && apt-get install libapache2-svn subversion apache2 -y
În timpul instalării pe CentOS 7, un fișier de configurare Apache pentru SVN va fi creat ca /etc/httpd/conf.modules.d/10-subversion.conf. Deschideți fișierul și adăugați următorul bloc de configurare:
/etc/httpd/conf.modules.d/10-subversion.conf
DAV svn SVNParentPath / websrv / svn AuthType Basic AuthName "Welcome to SVN" AuthUserFile / etc / httpd / subversion-auth Necesită un utilizator valid.
Notă: Pe Debian / Ubuntu trebuie să adăugați mai jos rândurile la /etc/apache2/mods-enabled/dav_svn.conf
fişier.
/etc/apache2/mods-enabled/dav_svn.conf
DAV svn SVNParentPath / websrv / svn AuthType Basic AuthName "Welcome to SVN" AuthUserFile / etc / apache2 / subversion-auth Necesită un utilizator valid.
Pe Debian / Ubuntu, trebuie să activați dav_svn Apache modul:
# a2enmod dav_svn.
Câteva precizări:
# mkdir -p / websrv / svn.
Este important să rețineți că acest director NU trebuie să fie localizat în interiorul sau să se suprapună DocumentRoot a unei gazde virtuale care este deservită în prezent de Apache. Acesta este un showstopper!
Vom folosi acum htpasswd pentru a crea o parolă pentru conturile cărora li se va permite să acceseze SVN. Doar pentru primul utilizator, vom avea nevoie de -c
opțiune.
Conturi permise și parole criptate bcrypt (-B
) vor fi stocate în /etc/httpd/subversion-auth în perechi cheie-valoare. Rețineți că, conform standardelor actuale, criptarea implicită MD5 sau SHA utilizată de htpasswd este considerată nesigură.
Pe CentOS / RHEL / Fedora # htpasswd -cB / etc / httpd / subversion-auth tecmint Pe Debian / Ubuntu # htpasswd -cB / etc / apache2 / subversion-auth tecmint.
Nu uitați să setați dreptul de proprietate și permisiunile pentru fișierul de autentificare:
Pe CentOS / RHEL / Fedora # chgrp apache / etc / httpd / subversion-auth. # chmod 660 / etc / httpd / subversion-auth Pe Debian / Ubuntu # chgrp www-data / etc / apache2 / subversion-auth. # chmod 660 / etc / apache2 / subversion-auth.
Deoarece veți accesa SVN printr-o interfață web, va trebui să permiteți HTTP (și opțional HTTPS) trafic prin firewall.
Pe CentOS / RHEL / Fedora # firewall-cmd --add-service = http --permanent. # firewall-cmd --add-service = https --permanent. # firewall-cmd --reload
Reîncărcând configurația firewall-ului cu --reload
, setările permanente sunt puse în aplicare imediat.
Creați un depozit SVN inițial numit tecmint:
# svnadmin create / websrv / svn / tecmint.
Schimbați proprietarul și proprietarul grupului în apache recursiv:
Pe CentOS / RHEL / Fedora # chown -R apache: apache / websrv / svn / tecmint Pe Debian / Ubuntu # chown -R www-data: www-data / websrv / svn / tecmint.
În cele din urmă, va trebui să schimbați contextul de securitate al /websrv/svn/tecmint
(rețineți că va trebui să repetați acest pas dacă decideți să creați alte depozite mai târziu):
Pe CentOS / RHEL / Fedora# chcon -R -t httpd_sys_content_t / websrv / svn / tecmint / # chcon -R -t httpd_sys_rw_content_t / websrv / svn / tecmint /
Notă: Este posibil ca ultimele două comenzi să nu se aplice dacă instalați SVN pe un VPS cu SELinux dezactivat.
Citire sugerată:Aflați cum să dezactivați temporar sau permanent SELinux în Linux
Repornire Apache și verificați că depozitul este disponibil.
Pe CentOS / RHEL / Fedora # systemctl reporniți httpd Pe Debian / Ubuntu # systemctl reporniți apache2.
Apoi lansați un browser web și indicați-l http://192.168.0.100/svn/tecmint
. După introducerea acreditărilor pentru utilizatorul valid pe care l-am creat Pasul 1, rezultatul ar trebui să fie similar cu:
În acest moment nu am adăugat niciun cod în depozitul nostru. Dar vom face asta într-un minut.
După cum am menționat în introducere, Broasca testoasaSVN este o interfață ușor de utilizat pentru Apache Subversion. Este software gratuit licențiat sub GPL și poate fi descărcat de pe https://tortoisesvn.net/downloads.html.
Alegeți arhitectura (32 sau Pe 64 de biți) care corespunde mașinii dvs. și instalați programul înainte de a continua.
În acest pas vom folosi un folder numit webapp
interior Documente. Acest folder conține un fișier HTML și două foldere denumite scripturi și stiluri cu un Javascript și un fișier CSS (script.js și stiluri.css, respectiv) pe care dorim să-l adăugăm la controlul versiunii.
Click dreapta webapp și alegeți SVN Checkout. Aceasta va crea o copie locală a depozitului la distanță (care este gol în acest moment) și va inițializa folderul pentru controlul versiunii:
În URL-ul depozitului, tastați http://192.168.0.100/svn/tecmint
și asigurați-vă că directorul local de plată rămâne același, apoi faceți clic pe Bine:
Introduceți numele de utilizator și parola (consultați Pasul 2) și faceți clic pe Bine:
Veți fi întrebat dacă doriți să faceți checkout într-un director care nu este gol. A confirma pentru a continua cu plata. Odată ce acesta este complet, o bifă verde va apărea lângă numele folderului:
Faceți clic dreapta pe webapp
din nou și alegeți Angajează-te de data asta. Apoi, scrieți un comentariu descriptiv pentru a identifica ulterior acest commit și verificați fișierele și folderele pe care doriți să le implementați în depozit. În cele din urmă, faceți clic pe Bine:
În funcție de dimensiunea fișierelor, commit-ul nu ar trebui să dureze mai mult de un minut. Când va fi complet, veți vedea că suntem acum revizuirea 1, care se potrivește cu versiunea și fișierele listate în interfața web:
Dacă există mai multe persoane care lucrează la aceleași fișiere, vă recomandăm Actualizați copia locală pentru a avea cea mai recentă versiune disponibilă pentru a lucra. Puteți face acest lucru făcând clic dreapta pe webapp
și alegând Actualizați din meniul contextual.
Felicitări! Ați configurat cu succes un server SVN și ați angajat / actualizat un proiect simplu sub controlul versiunii.
În acest articol am explicat cum se instalează și se configurează un Apache Subversion server de depozitare pe un CentOS 7 server și cum să comiteți modificări la acel depozit folosind Broasca testoasaSVN.
Vă rugăm să rețineți că există multe altele SVN și Broasca testoasaSVN decât ceea ce putem acoperi în mod adecvat aici (în special cum să reveniți la reviziile anterioare), deci vă recomandăm să consultați documentele oficiale (SVN și Broasca testoasaSVN) pentru mai multe informații și cazuri de configurare.
Ca întotdeauna, nu ezitați să ne anunțați dacă aveți întrebări! Nu ezitați să utilizați formularul de comentarii de mai jos pentru a ne contacta oricând.