Control de versions
Aquesta entrada o secció sobre el tema de l'enginyeria de programari no cita les fonts necessàries o els presents són insuficients . |
El control de versions ( control de versions), en informàtica , és la gestió de versions de diversos conjunts d’informació: les eines de programari per al control de versions es consideren molt necessàries per a la majoria dels projectes de desenvolupament de programari o document gestionat per un equip de desenvolupament col·laboratiu o edició.
Per tant, s’utilitza principalment en el desenvolupament de projectes d’ enginyeria o informàtica per gestionar l’evolució contínua de documents digitals com ara dibuixos tècnics , codi font de programari , documentació textual i altra informació important sobre la qual pot treballar un equip de persones (la història de Wikipedia és una exemple complet d’un sistema de control de versions).
Descripció
Característiques
El control de versions d'enginyeria es va desenvolupar a partir de processos formals basats en dibuixos en paper. Els canvis en aquests documents s’identifiquen incrementant un número o un codi associat, anomenat "número de versió", "etiqueta de versió" o simplement "versió", i s’etiqueten amb el nom de la persona que ha fet el canvi. Una forma senzilla de control de versions, per exemple, assigna el número 1 a la primera versió d’un projecte. Quan es fa el primer canvi, el número d'identificació de la versió canvia a 2, etc.
Implícit en aquest control era la possibilitat de tornar a un estat previ del projecte, en els casos en què s’arribés a un carreró sense sortida d’enginyeria. De la mateixa manera, en enginyeria de programari , el control de versió és qualsevol pràctica que fa un seguiment i permet controlar els canvis en el codi font produït per cada desenvolupador, compartint al mateix temps la versió més actualitzada o modificada per cadascun, mostrant així l’estat en un poc temps: progrés del treball de desenvolupament. De vegades, els desenvolupadors de programari utilitzen el control de versions de programari per a fitxers de documentació i configuració , així com el codi font. En teoria, el control de versions es pot aplicar a qualsevol tipus de registre d'informació. No obstant això, a la pràctica les tècniques i eines més sofisticades per al control de versions poques vegades s'han utilitzat fora dels entorns de desenvolupament de programari (tot i que poden ser útils en moltes altres àrees). Tot i això, es comencen a utilitzar per fer un seguiment dels canvis als fitxers CAD , substituint la gestió de versions "manuals".
A mesura que es desenvolupa i desplega programari , és cada vegada més probable que es desplegin versions separades del mateix programari en llocs diferents i que els desenvolupadors de programari treballin de forma privada en el desenvolupament d’actualitzacions. Els errors i altres problemes de programari solen estar presents només en determinades versions (a causa del fet que a mesura que el programari evoluciona, es solucionen alguns problemes i se’n detecten d’altres). Per tant, per detectar i corregir errors , és vital que el programador pugui recuperar i executar diferents versions del programari per determinar en quines versions es va produir el problema. També pot ser necessari desenvolupar dues versions del programari en paral·lel (quan, per exemple, en una versió s'han corregit errors, però no té funcions noves, mentre que en l'altra versió es desenvolupen noves funcions).
Al nivell més senzill, els desenvolupadors poden conservar una còpia per a cada versió de programari diferent i identificar-les adequadament. Aquest enfocament s'ha utilitzat en molts grans projectes de programari. Tot i que aquest mètode pot funcionar, és ineficient (ja que es conservaran moltes còpies gairebé idèntiques del programari), requereix molta disciplina per part dels desenvolupadors i sovint comporta errors. En conseqüència, s'han desenvolupat sistemes per automatitzar (parcialment o totalment) el procés de control de versions.
En la majoria de projectes de desenvolupament de programari, diversos desenvolupadors treballen en paral·lel amb el mateix programari. Si dos desenvolupadors intenten modificar el mateix fitxer alhora, en absència d’un mètode de gestió d’accés, poden sobreescriure o perdre fàcilment els canvis fets al mateix temps. La majoria dels sistemes de control de versions poden resoldre aquest problema de dues maneres diferents. Aquest problema només afecta els sistemes de control de versions centralitzats, ja que els sistemes distribuïts permeten inherentment múltiples canvis simultanis.
Els pros i els contres del bloqueig d’arxius estan a debat. Això pot proporcionar una certa protecció contra conflictes de combinació difícils quan un usuari fa canvis radicals a moltes seccions d'un fitxer gran (o grup de fitxers). Però si els fitxers es deixen bloquejats durant massa temps, és possible que altres desenvolupadors tinguin la temptació d’evitar el programari de control de versions i, tot i així, modificar-los localment, cosa que pot provocar problemes més greus.
Alguns sistemes intenten gestionar els perfils dels que tenen permís per fer canvis; per exemple, exigir que un revisor designat aprovi els canvis en un fitxer abans que s'afegeixin. La majoria dels sistemes de control de versions utilitzen la compressió delta , que només conserva les diferències entre les versions successives d'arxius. Això permet l'emmagatzematge eficient de diverses versions d'un fitxer, sempre que, com sol passar, els canvis entre una versió i la següent afectin només una petita part del text.
Programes i sistemes utilitzats
Alguns sistemes evitaran problemes a causa de l'accés simultani simplement bloquejant (bloquejar) fitxers, de manera que només un desenvolupador a la vegada té dret a tenir accés d'escriptura a la còpia dels fitxers continguts a la planta del dipòsit .
Tradicionalment, els sistemes de control de versions han utilitzat un model centralitzat, en el qual totes les funcions de control de versions es realitzen des d’un servidor compartit. Fa uns anys, certs sistemes com TeamWare, BitKeeper i GNU arch van començar a utilitzar un model distribuït, on cada desenvolupador treballa directament amb el seu dipòsit local i els canvis es comparteixen entre els repositoris en un pas independent. Aquest mode de funcionament us permet treballar sense connexió de xarxa i també permet als desenvolupadors accedir a funcions de control de versions sense necessitat de permisos concedits per una autoritat central. Altres, com CVS o Subversion (SVN), permeten a diversos desenvolupadors editar el mateix fitxer alhora i proporcionar eines per combinar els canvis més tard (fusionar). En aquest últim tipus, pot haver-hi una operació de bloqueig opcional.
Algunes de les eines de control de versions més avançades ofereixen moltes altres funcions, que permeten una integració més profunda amb altres eines i processos d’enginyeria de programari. Sovint hi ha connectors per a IDE com Eclipse i Visual Studio .
Glossari
- Dipòsit
- el dipòsit és el dipòsit on s’emmagatzemen els fitxers, sovint als servidors de fitxers . De vegades també s'anomena dipòsit (per exemple, del programari Perforce).
- Registrar
- es realitza un check-in (o ci o, més rarament, instal·lació , enviament ) en copiar els canvis fets als fitxers locals al directori del dipòsit (el programari de control de versions comprova quins fitxers s'han modificat des de la darrera sincronització). El registre d’entrada és la inserció del fitxer i l’estat corresponent.
- Edita
- una modificació (canvi) representa un canvi específic en un document enviat al control de versió. La granularitat dels canvis considerats com a canvis varia entre els sistemes de control de versions.
- Llista de canvis
- En molts sistemes de control de versions amb diverses confirmacions de canvis atòmics, una llista de canvis identifica un conjunt de canvis realitzats en una única confirmació.
- Sortida
- Una caixa (o caixa o co ) fa una còpia de treball des del dipòsit (es pot veure com el revers de la importació). El pagament és el pagament del fitxer i l’estat corresponent.
- Actualització
- una actualització (o sincronització ) copia els canvis fets al dipòsit al directori de treball (es pot veure com l'operació de confirmació inversa).
- Fusió / Integració
- una combinació o integració combina els canvis concurrents en una revisió unificada.
- Revisió
- una revisió o versió és una versió d'una cadena de canvis.
- Importació
- El terme d'importació s'utilitza per descriure la còpia de tot l'arbre de directori local a l'repositori.
- Exporta
- una exportació és similar a una compra, tret que crea un arbre de directoris buit sense metadades de control de versions (sovint s'utilitza abans de publicar contingut).
- Conflicte
- es produeix un conflicte quan diferents subjectes fan canvis al mateix document al mateix temps, sense veure els canvis que fa l’altre i que es podrien superposar. Com que el programari no és prou intel·ligent per decidir quin dels canvis és "correcte", cal que l'usuari resolgui el conflicte.
- Resoldre
- la intervenció d’un usuari per a la resolució d’un conflicte entre diferents modificacions d’un mateix document.
- Saltar
- conjunt d'accions que regulen la inserció (check-in) i la recuperació (check-out), per part d'un client, del contingut documental d'una unitat d'informació (objecte) controlada pel servidor d'aplicacions [1] . La volta lògica difereix de la volta física, que és el desplaçament dels bytes que componen el fitxer en relació amb l'objecte. El moviment es realitza a la volta (zona d’emmagatzematge) controlada pel servidor de fitxers.
Nota
- ^ El servidor d'aplicacions gestiona la lògica i les interaccions de el sistema amb el servidor d'arxius.
Articles relacionats
- Control de versions distribuïdes
- CVS
- Gestió de configuracions
- Enginyeria de software
- Llançament (IT)
- Escriptura col·lectiva
- Escriptura col·laborativa
- Programari
- Desenvolupador de programari
Altres projectes
-
Wikimedia Commons conté imatges o altres fitxers controlats per versions
Control de l'autoritat | LCCN (EN) sh2014000307 · GND (DE) 4202033-5 |
---|