Control de versiones: de SVN a GIT

¿Qué es un control de versiones?

Es un software que permite gestionar las diferentes versiones de la aplicación en la que estemos trabajando. Cuando hablamos de versiones nos referimos a cualquier cambio que se realice en cualquiera de los archivos.

Los beneficios de utilizar este tipo de herramientas son muchos. Por ejemplo, si estamos trabajando en una aplicación que tiene una jerarquía de carpetas medianamente grande (cualquier framework de PHP cae en esta categoría) nos evita estar acordándonos que archivos modificamos de cada carpeta, además de encargarse de ejecutar la actualización de esos archivos en el servidor. Por otro lado, si vamos a trabajar con otras personas en el mismo código, se encarga de la unificación de las versiones locales de cada developer y de resolver los conflictos que puedan surgir de haber modificado el mismo archivo por diferentes personas.

SVN

Probablemente el primer contacto con un control de versiones sea con éste. SVN es un control de versiones que mantiene un repositorio central con el que sincronizamos todos los entornos que utilizamos: todos los entornos locales de cada uno de los desarrolladores del proyecto, el entorno de producción (que también es un cliente del repositorio central) y el entorno de desarrollo y/o testing si se utilizara.

Para comenzar a trabajar con un repositorio, lo que debemos hacer es un checkout que nos permite descargar todo el contenido del repositorio. Una vez que tenemos nuestra versión local del repositorio, podemos comenzar a trabajar como siempre, teniendo en cuenta que si vamos a borrar un archivo del repositorio, es importante hacerlo a través de SVN porque sino al intentar subir los cambios no encontrará dichos archivos.

Si necesitamos agregar un archivo, podemos hacer un add para agregarlo al repositorio, un delete para removerlo o también podemos configurar nuestro SVN para ignorar determinados archivos o directorios (esto es muy útil para archivos de configuración, carpetas de cache, etc).

Todos estos comandos son utilizados cuando hacemos la gestión de nuestro repositorio desde una consola, pero también podemos utilizar algún cliente que posea una interfaz gráfica como el Tortoise SVN.

Finalmente, cuando finalizamos con todos los cambios y modificaciones, hacemos un commit para publicar los cambios en el servidor.
Cada vez que retomemos un proyecto, debemos actualizarlo haciendo un update para descargar todos los cambios que se hayan realizado por otros usuarios.

GIT

Este control de versiones tiene una gran diferencia con respecto a SVN y es que trabaja de forma distribuida: no hay un servidor y varias copias, sino que cada copia es una versión completa del repositorio.

Su creación se la debemos al gran Linux Torvalds que lo desarrolló para poder manejar el proyecto del Kernel de Linux. Esto es importante porque nos habla de la magnitud de proyectos que puede manjar y además de ser muy rápido, tiene un sistema de gestión de diferentes ramas de desarrollo para un mismo proyecto realmente potente y sencillo.

Una última gran diferencia es la incorporación de un estado intermedio entre modificado y producción, lo que en principio podría hacerlo parecer más complicado de empezar a usar.

En los próximos posts explicaremos más en profundidad cómo utilizar SVN y GIT. ¿Vos cómo trabajás? ¿Usás alguna de estas herramientas? Contanos!

5 opiniones en “Control de versiones: de SVN a GIT”

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *