The World as I see it.RSS pentru articole RSS pentru comentarii

Subversion si PHP

De cateva zile ma tot joc cu o instanta de Subversion. Instalarea in sine nu e foarte dificila daca ai mai lucrat cu linux si apache ( apache cu mod_dav_svn fiind alegerea mea de server in loc de svnserve ).

Cateva probleme au aparaut la configurare, dar noroc ca exista o documentatie destul de extinsa care te poate lamuri in multe privinte. De exemplu trebuie definit repository-ul cu mare atentie in httpd.conf. Mai jos e un setup relativ simplu:

httpd.conf config file
  1. <Location  /svn/project>
  2.     DAV svn
  3.     SVNPath /home/repos/project
  4.  
  5.     AuthType Basic
  6.     AuthName "Subversion repository"
  7.     AuthUserFile /path/to/access.passwd
  8.     Require valid-user
  9. </Location>

In exemplul de mai sus http://site.tld/svn/project va accesa repository-ul aflat la /home/repos/project. Pe langa asta ar fi indicat ca userul folosit de apache ( se seteaza tot din httpd.conf ) sa aiba acces la folderul cu repository-ul ( in cazul nostru /home/repos/project ).

O alta facilitate destul de interesanta oferita de Subversion este posibilitatea de a folosi asa-numite carlige (hooks) pentru a executa scripturi dupa niste ‘triggere’ predefinite ( post-commit, pre-commit, etc. ). Aceasta facilitate ne ofera niste posibilitati destul de interesante, de exemplu un commit care nu implineste anumite standarde poate fi oprit sau se poate trimite un mail cu modificarile facute de un commit.

Pe de alta parte am o problema cu metoda de implementare a Subversion. Pentru anumite proiecte am nevoie de un repository de fisiere .php. Problema e urmatoarea, userii fac checkout, editeaza fisierele, iar dupa commit se asteapta sa poata verifica modificarile direct in browser.

Subversion si PHP development

O solutie ar fi ca userii sa ruleze local un server de apache + mysql ( Wamp de exemplu ), sa verifice modificarile local si sa faca commit doar o data sau de doua ori pe zi. Solutia ar fi mai usor de implementat dar mai neplacuta pentru unii dintre useri.

O alta solutie ar fi sa implementez un post-commit hook care sa ruleze ’svn update’ pentru un working copy, aflat pe server, al repository-ului in cauza. Practic userul face commit iar serverul extrage modificarile din repository si apoi updateaza o copie a repository-ului aflata in web-root-ul serverului. Solutia asta ar fi mai facila pentru useri dar ar crea cate un commit la fiecare cateva modificari aduse de developer.

Pe partea asta astept sugestii si/sau alte propuneri.

All in all Subversion e o metoda destul de buna pentru versionarea unei colectii de fisiere, are destule facilitati si nu necesita un housekeeping foarte time-consuming, incecati-l cu incredere!

Un comentariu pana acum

Un comentariu pana acum la “Subversion si PHP”

  1. [...] Subversion si PHP – amicul Jerry care de curand a inceput sa descopere SVN (soft de versioning) si isi impartaseste cunostintele dobandite – foarte util pentru incepatori. Probabil primul articol dintr-o serie ce va urma [...]

Comentezi?