2011-10-04 11 views
10

Tengo un git repo que tiene código para todas las versiones 1.x. Ahora estoy empezando a trabajar en la "rama" 2.x. Como estoy comenzando a codificar eso completamente desde cero nuevamente (sin conexión entre 1.x y 2.x) me pregunto si 2.x es realmente una rama real o si debería comenzar un repositorio completamente nuevo para eso.Empezando desde cero para v2.0. ¿Debo seguir usando el repositorio git existente o comenzar uno nuevo?

Preguntándose cuáles son las ventajas y desventajas de cada solución. Podría imaginar que cambiar de una rama 1.x a una rama 2.x tomará bastante tiempo.

+2

Si '2.x' está completamente relacionado con el código de' 1.x', entonces simplemente no son la "misma aplicación". No tiene sentido rastrearlos en el mismo repositorio, ¿qué ventajas obtendrías de eso? – Mat

+2

Esa es exactamente la pregunta que me hago a mí mismo. Es la misma aplicación desde una perspectiva de producto y funcionalidad, pero no cuando se mira el código. – znq

Respuesta

3

Normalmente prefiero mantener versiones del mismo proyecto en el mismo repositorio.

Por ejemplo, tengo un proyecto que creé en ASP clásico hace varios años bajo SVN, luego migré el proyecto a PHP + Git y finalmente a Ruby + Git. En realidad, las 3 versiones fueron una reescritura completa porque cambié la tecnología detrás del código, pero todo está en el mismo repositorio.

Incluso puedo decidir comprar una versión muy antigua, si es necesario.

El uso de un repositorio separado tiene la ventaja de reducir el tamaño del repositorio, pero Git tiene un algoritmo de compresión muy eficiente (comparado con SVN por ejemplo) y vi repositorios SVN de 800Mb comprimidos en menos de 100Mb en Git.

Honestamente, creo que es una cuestión de gusto.

El uso de repositorios separados reduce el tamaño del repositorio.

Usar el mismo repositorio tiene la ventaja de mantener todo el historial del proyecto en el mismo lugar. Incluso puede etiquetar versiones para intercambiarlas fácilmente. Por último, pero no menos importante, si reutiliza los activos entre versiones, Git puede optimizarlos y almacenarlos solo una vez.

Cuestiones relacionadas