2009-08-20 14 views
13

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.Importación de Git desde Surround SCM?

Google para los importadores de git, encontré a good tutorial on custom importers. También parece haber soporte para svn, forzado y muchos otros, pero no Surround.

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

+0

El enlace a los importadores personalizados está muerto. Podría reemplazarse por https://git-scm.com/book/en/v1/Git-and-Other-Systems-Migrating-to-Git#A-Custom-Importer. – harper

+0

Agradable. Editado para corregir ¡Gracias! –

Respuesta

4

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

Recomendaría solamente la importación:

  • las grandes discográficas (por algo más de un año, o lo que sea período de que se sienta cómodo que no necesitará el examinar en su totalidad, ya que es tan viejo)
  • todas las etiquetas (mayores y menores) de los últimos años.

Sin embargo, la migración a Git también requiere un trabajo para identificar módulos o aplicaciones dentro de su repositorio centralizado Surround.
Intentando importar todos esos datos en uno El repositorio de Git sería un error, a menos que sea un sistema gigante que no pueda desarrollarse en partes independientemente unos de otros (como el kernel de Linux).

Ver:

4

Surround SCM tiene un SDK. Usé esto para traer un repositorio de CVS a Surround. Años después, un equipo estaba considerando mudarse a SVN y me preguntó si podía migrar el repositorio. Se me ocurrió una solución, que consistía en recorrer el repositorio Surround y crear una base de datos intermedia en memoria, y luego procesarla. Para asegurar que las fechas 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, ese equipo sigue utilizando Surround)

6

Encontrándome en este mismo escenario, he tomar sobre mí mismo para escribir un importador tal costumbre: export-surround-to-git

Este método se capaz de preservar el historial completo, marcas de tiempo, autores, comentarios, ramas, 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 cuenta.

+0

Esa secuencia de comandos no funciona muy bien en Windows, pero voy a enviar algunas correcciones (después de convertir un gran repositorio) en dos semanas. Ahora mismo es un código muy complicado, así que tengo que limpiarlo. Por cierto - que es el tenedor (o algún tipo de ella) https://github.com/xeningem/export-surround-to-git.git – Xeningem

Cuestiones relacionadas