1

Escogiendo un manejador de versiones

Posted by Jose Luis Manrique on 15:43 in , ,
En la empresa en la que trabajo manejamos muchos proyectos y cada proyecto con diversas personas las cuales agregan funcionalidades al sistema o reparan errores del mismo.
Desde ese punto de vista el control del código fuente debe ser manejado por algún sistema el cual sea capaz de administrarlo y ayudarnos a controlar el cambio de nuestro producto. Es ahí donde entran los sistemas de control de versiones. Es por medio de estos que podemos tener un mayor control de nuestro código, saber cual es la ultima versión en desarrollo, quien fue el que hizo los cambios, ver las diferencias entre versiones, etc.
Si buscamos en la web podemos encontrar mucho software para el manejo de código solo por resaltar algunos tenemos:
Para no entrar a mucho detalle que puede ser innecesario voy a comentar un poco sobre cada uno de los sistemas.

La primera vez que use uno de estos sistemas fue cuando aun era practicante y no tenia ni la mas mínima idea de como programar en J2EE(si aun se usaba eso) a pesar de todo eso usé el Clear Case es mas aun recuerdo cuando hice mi primer check out del repositorio, lo que recuerdo es que tenia una muy buena integración con la suite office puesto que uno podia ver las diferencias de los documentos de word o excel a nivel de edición. Ahora si quisera usar este software tendría que irme por dos caminos el comprar la versión para linux o buscar en rapidshare a ver si alguien dejo el instalador. Un punto menos para esta herramienta puesto que actualmente no puedo costearme dicho software.

Viendo las otras opciones tenemos al CVS que también nos ayuda a manejar nuestro código, dentro de sus principales ventajas es que posee una implementación de codigo abierto y gratuito lo cual busco. Ahora ya que cumple uno de mis principales requisitos vemos otras de sus características, entre una de ellas tenemos el manejo de versiones de archivos de texto, uso de ramas, agregar comentarios, etc pero también tenemos sus desventajas entre ellas tenemos que es lento para realizar commits, no trabaja de muy buena forma los archivos binarios y no posee un muy buen manejo de las ramas lo cual puede ser critico en el caso de que hayan varias versiones en paralelo. Si bien se acerco mucho a lo que requiero no llena por completo mis necesidades.

Continuando con la revisión tenemos al SVN o Subversión el cual vendría a ser una versión mejorada del CVS (aunque prefiero decir una evolución natural) este usa como motor de almacenamiento una base de datos Berkeley este puede guardar historia no solo de los archivos sino también de las carpetas cosa que no posee el CVS, además posee un buen manejo de las ramificaciones y en cuanto a la velocidad del commit es mucho mas rápido. Aparentemente este puede ser el candidato adecuado.
Ya para cerrar esta discusión hablaré un poco sobre GIT, una de sus mejores características es que esta mejorado para el desarrollo de aplicaciones donde los programadores se encuentran en diferentes ubicaciones geográficas. Este sistema es usado para el manejo del código del Kernel de Linux entre otros. Tiene un manejo del código y binarios mejor desarrollado que el SVN y las ramificaciones son mejor trabajadas. Este sistema puede tener todo lo que necesito pero hay un factor muy importante a tomar en cuenta al momento de escoger un sistema es que este se acomode a tus necesidades y por el momento no tengo los suficientes argumentos para usar GIT y si lo llegara a usar no aprovecharía al máximo sus características.

Ya habiendo analizado las posibilidades y de acuerdo a mis necesidades voy a usar SVN pues combina el manejo de ramificaciones (branchs), el versionamiento de carpetas y un manejo adecuado las versiones de los binarios.

En la siguiente entrega mostraré como instalar y configurar el SVN, hacer unos commits y check outs usando Eclipse.

1 Comments


Buena introduccion...gracias

Publicar un comentario

Copyright © 2009 Autumn All rights reserved. Theme by Laptop Geek. | Bloggerized by FalconHive.