¿Importar Git desde Surround SCM?

Mi empresa tiene una gran base de código en Surround SCM, que se migró de SourceSafe hace unos años. Estamos buscando algo más adecuado a nuestras necesidades, pero sacar nuestra historia de Surround es un desafío.

Buscando en Google para los importadores de git, encontré un buen tutorial sobre importadores personalizados . También parece haber soporte para svn, forzado y muchos otros, pero no Surround.

¿Sería mejor tomar una instantánea y comenzar un nuevo repository git? ¿O vale la pena escribir un guión para get más de 15 años de historial de códigos?

En este tipo de escenario, se puede escribir un script, pero no para get todo el historial.

Yo recomendaría solo importar:

  • las tags principales (para cualquier cosa que tenga más de un año, o cualquier período que se sienta cómodo, no necesitará el examen completo porque es muy antiguo)
  • todas las tags (mayores y menores) de los últimos años.

Sin embargo, la migration a Git también requiere un trabajo para identificar modules o aplicaciones dentro de su repository centralizado Surround.
Tratar de importar todos esos datos en un solo repository de Git sería un error, a less que sea un sistema gigante que no pueda desarrollarse en partes independientemente unos de otros (como el kernel de Linux).

Ver:

  • " ¿Cuáles son los límites de Git? " Y
  • " Transferencia de una base de código henetworkingada de cvs a un repository distribuido (por ejemplo, git o mercurial). Sugerencias necesarias para el layout inicial del repository " .

Al encontrarme en este escenario exacto, me encargo de escribir un importador personalizado como este: export-surround-to-git

Este método es capaz de preservar el historial completo, marcas de time, autores, comentarios, twigs, instantáneas, etc.

Este script se ha probado en un número limitado de escenarios y ha demostrado ser exitoso hasta el momento. Si bien todavía es un trabajo en progreso, esto puede ser lo que estás buscando. Es de código abierto, así que siéntase libre de realizar mejoras en el script por su count.

Surround SCM tiene un SDK. Usé esto para traer un repository de CVS a Surround. Años después, un equipo estaba considerando mudarse a SVN y me preguntó si podía migrar el repository. Se me ocurrió una solución, que consistía en recorrer el repository Surround y crear una database intermedia en memory, y luego procesarla. Para asegurar que las dates fueran correctas, reiniciaba el reloj en la computadora. Antes de poder implementar por completo la solución, decidimos mantener una licencia flotante para ese equipo para cuando necesitaran ver la historia y planearon repensar la organización completa de sus proyectos. (Como un FYI, dos años después y ese equipo todavía está usando Surround).