Introducció a CVS

  • warning: tempnam(): open_basedir restriction in effect. File() is not within the allowed path(s): (/srv/www/gilug.org/www/site.tree/) in /srv/www/gilug.org/www/site.tree/public/includes/file.inc on line 802.
  • warning: fopen(): Filename cannot be empty in /srv/www/gilug.org/www/site.tree/public/includes/file.inc on line 803.
  • El fitxer no s'ha pogut crear.

Les sigles de CVS signifiquen Version Control System, és a dir: sistema de control de versions.

Usant aquesta eina es pot guardar les modificacions que es realitzen als fitxers de codi font de qualsevol projecte.
CVS també ajuda quan hi ha un grup treballant al mateix projecte isolant les modificacions que realitza cada programador. Cada programador treballa amb amb el seu propi directori i CVS s'encarrega de fusionar-ho (merge en terminologia CVS).

Tot seguit procedim a enumerar les principals operacions que es poden realitzar utilitzant CVS. Com a exemple, utilitzarem el repositori CVS de sorceforge.net que conté el magní­fic tema de GiLuG.

Connectar-nos al servidor:

Cal especificar la ubicació de la m@ƒ quina (sf.net), el projecte (gilugsite) a una variable d'entorn:
export CVSROOT=:pserver:anonymous@cvs.sourceforge.net:/cvsroot/gilugsite

cvs login

Ens demanara una paraula de pas que hem de deixar en blanc.

Obtenir el codi d'un módul

En aquest moment estem connectats al repositori CVS de sorceforge.net, cal escollir quin és el módul del qual volem obtenir el codi font.

cvs checkout GilugTheme

Aplicar les modificacions

L\'objectiu principal de CVS és permetre a un grup de gent treballar conjuntament. Per tant, cal proporcionar d\'un mecanisme per pujar les modificacions realitzades al servidor.

Suposem que s'ha modificat el fitxer Gilug.theme.

cvs commit -m "Algun comentari" Gilug.theme

En el cas que no s'especifiqui el comentari amb el paràmetre -m, CVS ens obrirà un editor de text i ens obligarà a posar-lo.

Crear versions

Suposem que un programador vol posar un TAG (assignar un nombre) tot el seu codi que en un moment determinat té a local. Per fer-ho ha d\'utilitzar:

cvs tag -v GILUG_1_0

Obtenir el codi font d\'un TAG

cvs checkout -r GILUG_1_0 GilugTheme

Crear una branca

Suposem que la versió GILUG_1_0 és la que està funcionant al servidor (versi@ƒÂ³ estable) i actualment s\'està treballant amb una nova versió. Pot ser necessari realitzar modificacions al codi font GILUG_1_0 de manera que no afecti a la nova versió.
Per solventar aquests problemes, CVS permet treballar amb branques. Una branca permet realitzar modificacions a unes determinades versions del codi font sense afectar a la resta de versions dels mateixos fitxers.

Crear una branca:

  cvs tag -b GILUG_1_0

Obtenir el codi d\'una branca:

  cvs update -r GILUG_1_0 GilugTheme

Aplicar una modificació a la branca:

  cvs commit -m \"Pedaç a la branca estable\" gilug.theme

Veure les diferències

CVS permet visualitzar les diferéncies entre el fitxer que hi ha al repositori i el que tenim a local. S\'utilitza el programa diff de UNIX.

cvs diff gilug.theme

Crear un repositori a local

Cal tenir en compte que existeix la possibilitat de crear un repositori a un ordinador local i accedir a les mateixes funcionalitats.

cvs -d /opt/cvs/gilug init

export CVSROOT=/opt/cvs/gilug

Importar informació per primera vegada

cvs import -m "Codi Importat" gilug/SegonTema vendorTAG releaseTAG

En aquest cas estem creant un m@ƒÂ³dul anomenat SegonTema. CVS obliga a especificar dos TAG's: vendorTAG i releaseTAG, la seva funcionalitat escapa de l'abast d'aquest petit manual.

Conclusió
CVS ens ofereix unes característiques molt bones per la gestió de l'historial de modificacions del codi font dels projectes. Aquest manual sols s'ha centrat a la seva utilització des de l'interpret de comandes. No obstant existeixen moltes possibilitats d'utilitzar interfífices gràfiques i ésser integrat dins altres programes.

Consulta el CVS via web.

Magnifica introduccio!!
Aporto un petit detall nomes .. desde sourceforge.net podem consultar via web els moduls disponibles al CVS del Gilug.

CVS web

Est@ƒÂ  molt b@ƒÂ© el manual de CVS :D Gr@ƒÂ cies a el document m\'he introduit en el fascinant m@ƒÂ³n del CVX xDD per@ƒÂ² vull fer una pregunta... El codi de la web no est@ƒÂ  penjat al CVS? (node.php, module.php) perqu@ƒÅ¡ volia intentar escriure alguna cosa de codi per el traductor a pdf per@ƒÂ² no ho he trobat. Potser @ƒÂ©s que encara no tinc el truquillo i se m\'est@ƒÂ  escapant.

Salut!

Ho estar@ƒÂ 

Hola.
Drupal va anunciar el passat 1 d\\\'Agost la sortida de la versi@ƒÂ³ 4.2 d\\\'aquet CMS.
Com que Gilug estava fent servir la anterior versi@ƒÂ³ estic fent ara l\\\'actualitzaci@ƒÂ³ i comprovant que tot el sistema anterior funciona correctament amb aquesta nova versi@ƒÂ³.

Un cop estigui tot enllestit pujar@ƒÂ© al CVS el codi font del drupal tamb@ƒÂ© on podrem desenvolupar els afegits que necessitem.

Tot ho estem discutint a la llista de desenvolupament web hostatjada a sourceforge.net

Una d'enllaços

A la, com ja han dit més amunt, magnífica introducció d'en joe hi afegiria uns quants "enllaços d'interès":

Com no, la pàgina oficial on hi podreu trobar el manual oficial (Cederqvist manual), el FAQ i més documentació.

El llibre "The CVS Book" de Karl Fogel i Moshe Bar on hi ha una versió lliure online. Altament recomanat. Comença explicant desde 0 i va augmentant gradualment amb exemples sencills i clars. També podeu trobar una versió en castellà en diferents formats (pdf, html..) però que no està actualitzada a la última edició d'aquest (1.6 respecte la última edició en anglès que és la 2a).

Una altra font interessant és la documentació de sourceforge.net apartat F.

Per si algú hi està interessat, hi ha una espècie de how-to de com instal.lar un servidor cvs amb ssh en chroot destinat als usuaris de *BSD però que pot donar idees a la gent que faci servir Linux.

I seguint aquesta línia uns quants consells a l'hora d'administrar un servidor CVS els podreu trobar aquí per cortesia de la gent de BULMA.

I per si algú vol veure algún altre sistema de control de versions, un últim enllaç al que es suposa que serà el substitut del CVS suplint algunes de les mancances d'aquest: SubVersion. Tot i que a bon ritme ( treuen vàries versions cada mes) encara no han tret una versió 1.0. Tot i que ja té implementades la majoria de les accions que permet fer el CVS i, com ells mateixos diuen, ja és prou estable com per utilitzar-lo en entorns reals.

I per acabar, uns quants enllaços a clients de CVS gràfics que us faran la vida un xic més fàcil a l'hora de treballar amb CVS. Tenim, per exemple, per entorns KDE el Cervisia, LinCVS, per Gnome el Pharmacy (tot i que sembla que el desenvolupament estigui aturat...), TkCVS fet amb Tcl/Tk, el suport incorporat en el KDevelop o algun client en Java com el jCVS. Inclòs ens trobem amb CvsGui que hi ha versions tant per Unix/Linux, Machintosh i Windows.

Començar amb el gilug-dev

He programat un simple script en bash per descarregar-se el modul la primera vegada.

el podeu trobar aqui, es diu gilugcvs

obre els ulls, la ment i el codi font ;-)