Control de versions

De Cacauet Wiki
Dreceres ràpides: navegació, cerca

Referències:


Introducció[modifica]

Un sistema de control de versions ens permet:

  • Tenir un repositori de codi (accés per xarxa)
  • Mantenir un seguiment de les versions dels arxius i projectes.
  • Còpia de seguretat i rollback (desfer canvis que no han prosperat).
  • Centralitzar els col·laboradors en un projecte comú.
  • Alguns (com el GitHub) faciliten el control del projecte amb objectius o fites (milestones) i incidències (issues)

Sistemes de control de versions:

  • git
  • Subversion (svn)
  • Mercurial (hg)
  • CVS (ha quedat obsolet)
  • Razor
  • ...

Treballarem amb GIT ja que disposem de la web GitHub.com que ens permet crear repositoris gratuïts si són públics. Si els volem privats s'ha de pagar.

També podríem instal·lar-nos el nostre propi servidor, però GitHub.com ofereix un servei de qualitat, eficient i obert a la comunitat de codi lliure, facilitant la difusió i col·laboració.

Per iniciar-vos amb GIT teniu aquest article: Git: comandes

Conceptes[modifica]

Alguns conceptes:

  • Repositori: projecte base
  • Col·laboradors: desenvolupadors participants en un projecte autoritzats a accedir al repositori.
  • Branch: ="branca". Versió alternativa dins del mateix repo. Facilita el desenvolupament de diferents subparts del projecte sense interferir-se. Només disponible en escriptura per als usuaris autoritzats.
  • Fork: ="forquilla". Clonació d'un projecte en un nou repositori. Similar al branch (facilita desenvolupaments paral·lels sense interferències) però no cal tenir autorització, ja que clonem el projecte al nostre espai.
  • Merge: procés per unir dues branques o dos repositoris (fork). Pot produir inconsistències o incompatibilitats que cal administrar correctament.
  • Pull request: el projecte original sol·licita als projectes forked que s'actualitzin, ja que hi ha hagut canvis.
  • Trunk: branca principal d'un projecte.

Altres conceptes relacionats amb el management de projectes:

  • Milestone: fita o objectiu (p.ex. sistema d'autenticació, importació d'arxius, etc.)
  • Issue: pot ser una incidència (bug detectat) o bé una part d'un milestone, una petita fita a aconseguir. Per exemple: error en la càrrega d'arxius (bug), llibreria d'accés a la base de dades, formulari d'entrada i validació, etc.