Prové de l'anglès i és l'acrònim de Concurrent Versions System (Sistema de Control de Versions, en català) o Concurrent Versioning System. Es tracta d'un sistema que manté un registre de tot el treball realitzat i els canvis en la implementació d'un projecte (de programa) i que permet que diferents desenvolupadors (potencialment separats per grans distàncies) col·laborin junts.

CVS

Tipussistema de control de versions centralitzat Modifica el valor a Wikidata
Versió inicial19 novembre 1990 Modifica el valor a Wikidata
Versió estable
1.11.23 (8 maig 2008) Modifica el valor a Wikidata
Versió prèvia
1.12.13 (28 setembre 2005) Modifica el valor a Wikidata


LlicènciaGNU GPL 1.0 o posterior Modifica el valor a Wikidata
Característiques tècniques
Sistema operatiuUnix-like Modifica el valor a Wikidata
Escrit enC Modifica el valor a Wikidata
Equip
Desenvolupador(s)The CVS Team (en) Tradueix Modifica el valor a Wikidata
Més informació
Lloc webnongnu.org… (anglès) Modifica el valor a Wikidata
Stack ExchangeEtiqueta Modifica el valor a Wikidata
Seguiment d'errorsSeguiment d'errors Modifica el valor a Wikidata
Free Software Directorycvs Modifica el valor a Wikidata

Els sistemes de control són utilitzats principalment a la indústria del programari per controlar les diferents versions del codi font. Tot i això, els mateixos conceptes són aplicables a altres àmbits (i no només pel codi font) com la generació de documents, imatges, etc. En el món del programari lliure s'ha fet molt popular entre els desenvolupadors de codi obert, que treballen amb el CVS difós sota la llicència GPL.

Característiques modifica

Un sistema de control de versions ha de proporcionar:

  • Un mecanisme d'emmagatzematge de cadascun dels ítems que s'ha de gestionar (arxius de text, imatges, documentació...)
  • La possibilitat de modificar, moure i esborrar cadascun dels elements.
  • Un històric de les accions realitzades amb cada element, i la possibilitat de tornar a un estat anterior dins d'aquest historial.

Tot i que no és estrictament necessari, sol ser molt útil la generació d'informes amb els canvis introduïts entre dues versions, informes d'estat, identificats amb números de versions...

CVS utilitza una arquitectura client-servidor: un servidor guarda la versió o versions actuals del projecte i la seva història, i els clients es connecten al servidor per extreure una còpia completa del projecte, treballar amb aquesta còpia i posteriorment afegir els canvis realitzats. Típicament, el client i el servidor es connecten a través d'Internet, però també poden executar-se els dos alhora a la mateixa màquina en el cas que es vulgui que el CVS mantingui el registre de la història de les versions del programa d'un projecte dut a terme només per desenvolupadors locals. El servidor normalment utilitza un sistema operatiu similar a Unix, mentre que els clients del CVS poden funcionar amb qualsevol dels sistemes operatius (veure sistema operatiu) que hi ha al mercat.

Com que diversos clients poden extreure o poden estar treballant amb còpies del projecte al mateix temps, a l'hora de guardar els canvis el sistema tracta de fusionar-les. Si aquest procés falla, perquè, per exemple, dos clients canvien la mateixa línia en un fitxer en concret, el fitxer denega el segon ingrés i informa al client sobre el conflicte, que l'usuari haurà de resoldre de forma manual. Si l'operació de fusió té èxit, aleshores el número de versió de tots els fitxers implicats s'incrementa automàticament i el servidor CVS escriu una línia amb una descripció subministrada per l'usuari, la data i el nom de l'autor i els seus fitxers log.

Els clients poden també comparar diferents versions dels fitxers, sol·licitant una història completa dels canvis, o extreure una "foto" històrica de com es trobava el projecte en una data concreta o en un número de revisió determinat, tal com passa en molts projectes de codi obert on es permet l'"accés de lectura anònim" (que vol dir que els clients poden obtenir versions i comparar-les sense necessitat de tenir cap privilegi sobre els fitxers).

Els clients també poden utilitzar la comanda d'actualització amb l'objectiu de tenir les seves còpies al dia amb l'última versió que es troba al servidor. D'aquesta manera s'estalvia haver de tornar a descarregar el projecte complet.

El CVS també pot mantenir diferents "branques" d'un projecte. Per exemple, es pot utilitzar una versió ampliada d'un projecte de programa pot formar una branca, i utilitzar-la per corregir errors, mentre en una altra branca es fa servir una segona versió per anar-la desenvolupant, afegint canvis i noves característiques.

Terminologia modifica

La terminologia CVS denomina, mòdul a un projecte simple (conjunt relacionat de fitxers) gestionat pel CVS. S'utilitza el terme repositori per referir-se al conjunt de mòduls que pot gestionar el CVS. La còpia descarregada per un client serveix com a còpia de treball.

Vegeu també modifica

Referències i enllaços externs modifica