Este artículo proporciona una visión general acerca de por qué usar el control de versiones. También compara Git vs Subversion (SVN), dos de los principales sistemas de control de versiones. Si eres nuevo en el uso de control de versiones y estás tratando de decidir entre usar Git o Subversion esta comparación es para usted.
¿Por qué utilizar el control de versiones?
El control de versiones ofrece muchos beneficios, incluyendo:
1. Guardar toda la historia de su proyecto
2. Cometer errores con menos miedo
3. Experimentar libremente
4. El trabajo en equipo se vuelve más manejable
Los beneficios de Git
Git ha convertido en el estándar de la industria en el desarrollo web , se prefiere a diferencia de SVN porque:
– Git se distribuye
– Git es más rápido
– Git tiene un tamaño más pequeño por repositorio
– Generar ramas y trabajar con los equipos es más fácil
Beneficios de SVN
SVN tiene algunas ventajas sobre Git. Algunas personas encuentran su modo de numeración de repositorios para ser más intuitivo que Git. Esto puede hacer que sea más fácil para volver a versiones anteriores.
SVN ha sido por más tiempo, hay herramientas de interfaz de usuario más gráfica, si se quiere evitar la línea de comandos. Hay, sin embargo, un montón de herramientas de Git, así que esto no debería ser un gran motivo de ruptura.
SVN es un sistema de control de versiones centralizado, todo se almacena en un solo lugar. Esto puede hacer que algunos piensan que SVN es menos confuso que Git.
Seguidores de Git argumentarían que Git es perfectamente capaz de crear un flujo de trabajo centralizado similar en el que es tan fácil de localizar y acceder a las ramas principales y archivos.
Comparaciones de Git y Subversión
Git es mucho más rápido que Subversion
Subversion le permite ver sólo un subárbol de un repositorio; Git necesita clonar el repositorio completo (incluyendo el historial) y crear una copia de trabajo que refleje al menos un subconjunto de los elementos que están bajo control de versiones.
Los repositorios Git son mucho más pequeños que Subversiones. SVN requiere 30 veces más el espacio en disco para almacenar el mismo historial.
Git fue diseñado para ser totalmente distribuida desde el principio, lo que permite que cada desarrollador tenga pleno control local.
Las ramas (branches) Git son más simples y menos pesados que Subversion
Las ramas (branches) Git llevan toda su historia completa
La fusión (merge) en Git no obliga a recordar que la revisión que se fusionaron a partir de (este beneficio se evita con el lanzamiento de Subversion 1.5)
Git proporciona una mejor auditoría de eventos de ramificación (branch) y fusión (merge)
Los formatos de archivo de los repositorios de Git son simples, por lo que la reparación es fácil y la corrupción es rara.
La copia de seguridad de los repositorios centrales de Subversion es potencialmente más simple
El clonado de repositorios Git actua como repositorio de copias de seguridad completas
Interfaz de usuario de Subversion es más maduro que Git. Actualmente Subversion tiene una gama más amplia de GUI’s que Git. Por ejemplo, hay plugins disponibles de SVN para los IDEs más populares, pero si utilizas Netbeans o Eclipse vas a tener GUI’s para ambos sistemas.
Navegando a través de las versiones es más simple en Subversion, ya que utiliza números de secuencia de revisión (1,2,3, ..); Git utiliza impredecibles códigos hash SHA-1.
Navegando hacia atrás en Git es muy fácil usando la sitaxis «^», pero no hay manera fácil de navegar hacia adelante.
Dado que Subversion tiene un repositorio central único, es posible especificar leer y escribir los controles de acceso en un solo lugar y hacer que se respete efectivamente en la totalidad del proyecto.
Con Subversion se puede extraer un subdirectorio de un repositorio. Esto no es posible con Git. Por lo que para un proyecto grande, esto significa tener siempre que descargar el repositorio completo.
SVN tiene la ventaja de que es mucho más fácil de aprender mientras que Git es más difícil de aprender porque tiene más conceptos y órdenes.
Conclusión
La decisión de cual seleccionar depende como siempre de cada uno, en Infranetowrking preferimos trabajar con Git por la característica de la velocidad y almacenamiento, dos factores indispensables en el versionado de código.