Control de Versiones
Se suele observar todavía muchos entornos de programación donde el proceso de desarrollo presenta un único repositorio central de archivos en el cual varios programadores se encuentran trabajando al mismo tiempo. Lo anterior lleva a varios problemas como conflictos entre versiones de código, sobreescritura de código, imposibilidad para devolverse a versiones anteriores de funcionalidad, dificultad para trabajar en diferentes funcionalidades al mismo tiempo, entre muchos otros más. Yo he estado ahí!
Hace ya algunos años desde que tuve la suerte de empezar a trabajar en proyectos donde el uso de un sistema de control de versiones es requerido sin excepción, esta experiencia ha sido genial.
Básicamente un sistema para control de versiones facilita la administración de las distintas versiones para un proyecto en desarrollo. Los sistemas de almacenamiento centralizado son los más comunes, entre ellos tenemos SVN y CVS, estos crean un repositorio central en el cual el proyecto es almacenado, por otro lado, los desarrolladores pueden generar copias locales de trabajo donde deben introducir sus cambios y luego enviarlos [ o commitearlos diría el spanglish
] al repositorio central.
Otra gran ventaja que ofrecen estas herramientas es la generación automática de un historial de cambios. Por ejemplo algunas de las cosas que puedes ver serían: quién modificó cierto archivo? cuando? porqué? qué cambios hizo?, diferencias entre revisiones específicas, y muchas más.
Algunas herramientas como Trac, brindan interfaces que facilitan la interacción con SVN.
Para aquellos que han estado pensando en entrarle y nunca se han decidido, vale la pena probarlo!
