Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sistemes de control de versions - Coggle Diagram
Sistemes de control de versions
Definicicó
Es diu control de versions a la gestió dels diversos canvis que es realitzen sobre els elements d'algun producte o una configuració d'aquest. Una versió, revisió o edició d'un producte, és l'estat en el qual es troben els productes en un moment donat del seu desenrotllament o modificació. Encara que un sistema de control de versions es pot fer de manera manual, és aconsellable disposar d'eines que facilitin aquesta gestió donant lloc als anomenats sistemes de control de versions o svc.
Aquests sistemes faciliten l'administració de les diferents versions de cada producte desenvolupat, així com les possibles especialitzacions realitzades. Exemples d'aquests tipus d'eines son entre altres: CVS, SourceSafe, ClearCase, Darcs, Bazaar, Plastic SCM, Git, Mercurial, Perforce.
Terminologia
Desplegar ("checkout"): És crear una còpia de treball local des del repositori. Un usuari pot especificar una revisió en concret o obtenir la última.
Confirmar ("commit"): És escriure o mesclar els canvis realitzats en la còpia de treball del repositori.
Canvi ("change"): Un canvi representa una modificació específica d'un document sota el control de versions.
Conflicte ("conflict"): Es produeix quan diferents parts realitzen canvis en el mateix document, i el sistema és incapaç de conciliar els canvis. Un usuari ha de resoldre el conflicte mitjançant la integració dels canvis o mitjançant la selecció d'un canvi en favor de l'altre.
Rama ("branch"): Serveix per ramificar arxius en un punt en el temps de manera que, a partir d'aquest moment, dos còpies d'aquest arxiu es poden desenvolupar a velocitats diferents o en formes diferents de forma independent l'un de l'altre.
Cap ("head"): A vegades també es diu "tip", i es refereix a la última confirmació, ja sigui en el tronc "trunk" o en una rama "brench". El tronc i cada rama té la seva pròpia capçalera.
Revisió ("revision"): És una versió determinada de la informació que s'utilitza. Hi ha sistemes que identifiquen les revisions amb un comptador, n'hi ha d'altres que identifiquen les revisions mitjançant un codi de detecció de modificacions.
Tronc ("trunk"): És la única línia de desenvolupament que no és una rama.
Etiqueta ("tag"): Permeten identificar de forma fàcil revisions importants en el projecte. Per exemple es solen utilitzar per identificar el contingut de les versions publicades del projecte.
Fusionar, integrar, mesclar ("merge"): Una fusió o integració és una operació en la qual s'apliquen dos tipus de canvis en un arxiu o conjunt d'arxius.
Repositori ("repository"): És el lloc que s'emmagatzema les dades actualitzades i historial de canvis
Clasificació
Podem classificar els sistemes de control de versions atenent a l'arquitectura utilitzada per emmagatzemar codis: locals, centralitzats i distribuïts.
Centralitzats
: Existeix un repositori centralitzat de tot el codi, del qual és responsable un únic usuari. Es faciliten les tasques administratives a canvi de reduir flexibilitat, totes les decisions fortes necessiten l'aprovació del responsable. Alguns exemples són CVS i Subversion.
Distribuïdes
: Cada usuari té el seu propi repositori. Els diferents repositoris poden intercanviar i mesclar revisions entre ells. És freqüent l'ús d'un repositori, que està normalment disponible, que serveix de punt de sincronització dels diferents repositoris locals. Per exemple Git y Mercurial.
Locals
: Els canvis són guardats localment i no es comparteixen amb ningú.
Avantatges
Avantatges de sistemes distribuïts
:
No és necessari estar connectat per guardar canvis.
Possibilitat de continuar treballant si el repositori remot no està accessible.
El repositori central està més alliberat de rames de proves.
Es necessiten menys recursos pel repositori remot.
Més flexible en permetre gestionar cada repositori personal com es vulgui.