¿Debo agregar código antiguo en mi repositorio?

8

Tengo un repositorio SVN de un sitio PHP y el último programador no usó el control de fuente correctamente. Como resultado, solo el código desde que empecé a trabajar aquí está en el Repo.

Tengo un montón de copias antiguas de la base de código completa guardadas en archivos como "copias de seguridad", pero no están en control de origen. No sé por qué se guardaron la mayoría de las copias ni tengo una forma razonable de etiquetarlas con un número de versión. Me hacer que las fechas se hicieron las copias de seguridad, todos los respaldos tienen marcas de tiempo adecuados del sistema de archivos.

Debido a las actualizaciones de los marcos y los controladores de bases de datos involucrados, el código antiguo está bastante difunto; ya no funciona en la configuración actual del servidor. Sin embargo, los programadores anteriores tenían una lógica única , por lo que odio estar completamente sin copias antiguas para referirme a lo que estaban haciendo.

¿Debo mantener esto en el control de versiones? ¿Cómo? ¿Eliminar el viejo código en etiquetas / ramas separadas?

Ben Brocka
fuente
¿Tiene una copia completa de la base de código actual en el control de origen ahora?
Joshua Drake
@ JoshuaDrake, sí, el repositorio actual es una copia de trabajo completa de todo lo que necesito. No hay nada que me esté "perdiendo" excepto por cosas históricas, pero he realizado cambios sustanciales en muchas partes del programa.
Ben Brocka

Respuestas:

10

Si tiene marcas de tiempo razonables en cada una de estas versiones de trabajo, entonces tal vez pueda verificarlas de una en una hasta que llegue a la versión más reciente de la base de código, sus últimos cambios.

El problema con el enfoque de etiqueta, como todos los demás sugieren, es que perderá el historial de conjuntos de cambios en cada archivo y esto hará que las comparaciones entre versiones anteriores del código sean más difíciles.

árbol de arce
fuente
Me preguntaba si podría llevarlos al historial de revisiones. Las fechas modificadas se ven precisas en las copias antiguas.
Ben Brocka
2
@BenBrocka Obviamente puede hacerlo, simplemente comience verificando la copia más antigua de la base de código en una nueva rama. Elimine todo en su copia de trabajo, excepto los directorios de subversion, copie la siguiente copia más antigua en su carpeta de trabajo, busque modificaciones, verá todos los archivos nuevos, actualizaciones y eliminaciones. Hora de llegada. Lather. Enjuague. Repite hasta que tengas un cabello elegante y brillante.
maple_shaft
2
NOTA: Al hacer esto, perderá las marcas de tiempo históricas en las versiones anteriores, pero esas fechas probablemente no sean muy útiles de todos modos además de la curiosidad histórica. El historial del conjunto de cambios secuenciales para cada archivo es mucho más valioso.
maple_shaft
1
No hay forma de que pueda mantener las marcas de tiempo históricas de todos modos, ¿verdad? ¿Simplemente aparecerán como las revisiones más antiguas?
Ben Brocka
2
Claro que puedes mantener las marcas de tiempo. Dado un sistema independiente ( p . Ej. , Una computadora portátil, una computadora de escritorio), simplemente configure su reloj con la marca de tiempo de la copia de seguridad antes de registrarse en SVN.
Ross Patterson el
8

Usaría un directorio separado, algo así como "legado" para tener todas las cosas necesarias en un solo lugar.

Simón
fuente
+1 Documente cómo se relacionan las diferentes versiones, guarde, avance con la copia de trabajo.
JustinDoesWork
2

Yo personalmente lo haría. Debes asegurarte de mantenerlos separados, probablemente como dijiste, taparlo con etiquetas. Es posible que pueda usar la fecha en que el archivo se editó por última vez para averiguar un orden general de cosas.

Ponerlo en SVN sería bueno para mostrar la historia. Parece que lo necesitará, si tienen algunos fragmentos extraños, ver el historial del archivo sería útil. Sin mencionar que tiene toda la historia (conocida) del proyecto en un solo lugar. Realmente no puedo pensar en una razón para no hacerlo, aunque podría estar perdiendo algo importante.

JosephRT
fuente