Todos los desarrolladores habrán escuchado hablar del control de versiones, es algo necesario en los proyectos, sobre todo si se trabaja en un equipo de varias personas. Aquí voy a diferenciar los dos software de control de versiones más utilizados, GIT y SVN.
Un control de versiones es básicamente, un lugar compartido entre los desarrolladores de proyectos donde almacenan los ficheros. El control de versiones graba quién, cuándo y qué modifica cada desarrollador.
SVN (Subversion)
Subversion es muy popular debido a que es muy fácil de utilizar y entender, además de que es sencillo trabajar con él.
SVN tiene un servidor central para tu repositorio y este se divide en tres áreas importantes: Trunk, branches y tags.
- Trunk: es la parte del desarrollo principal.
- Branches: es una ubicación con versiones de desarrollo paralelas al Trunk.
- Tags: es la ubicación de las versiones congeladas.
Trunk
Este área es donde se encuentra el código estable, ningún desarrollador debe subir contenido con fallos al trunk debido a que esta es la parte central del proyecto que recibirá las actualizaciones. Cuando trabajas en algo nuevo del proyecto debes hacer una rama del código que se encuentra en el trunk y cuando hayas acabado de trabajar con él, debes unir el código de la rama con el trunk.
Branches
Como he explicado anteriormente, cuando quieres modificar algo del proyecto, debes hacer una rama (branch en inglés). Esto quiere decir que obtienes una copia exacta del código del trunk y lo almacenas en un nuevo directorio en la rama. Este código lo puedes modificar y cuando hayas realizado las modificaciones necesarias y funcione correctamente, unes tus cambios con el trunk mediante un merge.
Tags
Una tag o etiqueta es una forma de marcar tu código en ciertos puntos de tiempo, es lo mismo que hacer ramas. La única diferencia entre las ramas y las tags, es que las tags no deberían utilizarse para desarrollo, sino para revertir tu código.
GIT
Actualmente GIT es el software de control de versiones más popular. Este es similar a SVN pero la forma de trabajo es un poco diferente a la de SVN. Subversion tiene un repositorio cental mientras que GIT tiene múltiples repositorios (uno por desarrollador) y, a parte, uno central.
Los beneficios de tener varios repositorios son, por ejemplo, que no hay solo un punto de fallos. En SVN si hay algún fallo en el repositorio central, ningún desarrollador puede hacer un commit hasta que el repositorio se repara. Con GIT cada desarrollador tiene su propio repositorio, por lo que no importa si el repositorio central falla, ya que pueden hacer commits locales hasta que puedan hacer push al repositorio principal.
Otro beneficio de GIT, es que al tener un repositorio local no es necesario tener conexión a una red para hacer commits de tu código, puedes hacer commits en local y hacer push de los cambios cuando estés listo para subirlos al repositorio remoto.
Cuando se trabaja desarrollando un proyecto con GIT, se clona el repositorio remoto y crea un repositorio local. Esto quiere decir que haces una copia del código en el momento en que haces el clone para poder trabajar en local. Al igual que en SVN, puedes crear branches, tags y hacer commits mientras desarrollas en local.
Cuando termines de hacer los cambios, unes los cambios con tu repositorio local para posteriormente hacer un push al repositorio remoto. Una gran diferencia es que en SVN esto lo haríamos en forma de commit mientras que en GIT es un push, algo que no hacemos tanto a menudo como un push, por lo que ahorramos tiempo en vez de tener que subir cada cierto tiempo los commit al repositorio remoto.
Espero que haya servido para decidir qué software quieres usar para el control de versiones en tus desarrollos.
Fuente: http://agile.dzone.com/articles/version-control-git-vs-svn
Deja un comentario