Fa uns mesos parlàvem sobre la seguretat en el desenvolupament de programari, un dels aspectes més importants d'un projecte. Avui parlarem sobre un altre pilar bàsic del món de la programació: el control de versions.
Els sistemes de control de versions són eines de programari que gestionen els canvis realitzats al codi font dels projectes. Gràcies a aquestes eines, els desenvolupadors i desenvolupadores poden consultar i comparar versions anteriors dels seus projectes.
Moltes vegades un petit canvi en el codi desfà els darrers avenços i, moltes vegades, aquest petit canvi triga a localitzar-se. Amb els sistemes de control de versions, aquest tipus de problemes s'afronten amb total eficàcia. Vegem com funcionen i quins són els més utilitzats.
Els repositoris d'aquestes eines segueixen la mateixa estructura d'arbre que els directoris corrents. Així, cada membre de l'equip pot focalitzar-se en un fitxer diferent i treballar de forma simultània. Aquests sistemes estan preparats per resoldre conflictes en cas que més d'un desenvolupador estigui treballant sobre el mateix arxiu, i el registre històric de canvis ajuda a detectar els passos de cada usuari.
Però no només els equips de desenvolupament es beneficien de les funcions dels sistemes de control de versions. Aquestes eines permeten desfer grans canvis al codi i creen còpies de seguretat externes, dues funcions que qualsevol professional de la informàtica pot fer servir encara que desenvolupi en solitari.
No hi ha un clar guanyador entre totes les opcions que ens ofereix el món de la informàtica. Cada sistema de control de versions ofereix unes funcions concretes que s'adaptaran millor o pitjor a un desenvolupament en funció de les singularitats. Vegem algunes de les característiques i avantatges i desavantatges de les eines més utilitzades.
Git és l'eina de control de versions més popular i una de les millors opcions per a usuaris experimentats amb perfil tècnic.
SVN, a diferència de Git, es basa en una arquitectura client-servidor. Presenta algunes funcionalitats interessants, com ara versions d'enllaços simbòlics, suport per a directoris buits i registres d'operacions de copiar, moure, esborrar i reanomenar. Un gran sistema per a Windows i projectes que no requereixin accés distribuït.
Mercurial, igual que Git, és un sistema de control de versions distribuït ideal per a usuaris poc experimentats o perfils poc tècnics.
CVS es basa en una arquitectura client-servidor com la de SVN, porta molt de temps present en el món del desenvolupament i és una opció excel·lent per als projectes de codi obert.
Monotone és una eina de control de versions distribuïda de codi obert que es pot integrar en molts sistemes operatius. Prima la integritat davant del rendiment, utilitza tècniques criptogràfiques per rastrejar les versions i autenticacions de fitxers, pot importar projectes CVS i utilitza el protocol netsync.
Els sistemes de control de versions no són només una eina útil i bàsica per al desenvolupament de programari, sinó també una oportunitat per especialitzar-se en el seu ús. Integrar aquest tipus de sistemes a les empreses no sempre és una tasca fàcil. Si vols conèixer totes les opcions que t'obre el món de la informàtica, des de les aplicacions de seguretat biomètrica fins a les noves ofertes de teletreball, no ho dubtis i impulsa't amb BETWEEN!