Control de versions
Introducció
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
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.