svn - ¿La mejor forma de migrar de VSS a Subversion?
version-control visual-sourcesafe (10)
He usado algunos guiones (no recuerdo cuál) para ayudar en una conversión de VSS a SVN. Fue un poco doloroso y meticuloso, pero terminó trabajando, y mantuvo toda la historia. Tenía que mantener toda la historia por razones políticas en ese momento; si me saliera con la mía, probablemente hubiera descartado la historia e importado todo el código en SVN.
También por razones políticas, escribí algunos scripts realmente hacky que mantuvieron a VSS actualizado con los cambios de Subversion. Funcionaron por un tiempo, pero siguieron rompiendo cada semana o dos, hasta que alguien renombró un directorio o algo y todo se vino abajo. En ese momento, estaba bien simplemente continuar usando Subversion.
Soy un desarrollador único que busca salir de Visual Source Safe y pasar a svn.
Una búsqueda rápida muestra varias herramientas, pero no veo un ganador claro y no puedo permitirme perder mucho tiempo probando diferentes herramientas.
¿Alguien ha hecho esto con éxito y puede recomendar un método?
En mi trabajo actual, creamos un repositorio de subversión, configuramos scripts de enlace para ignorar todos los vss y archivos generados, y luego comenzamos a importar los diversos proyectos con tortugaSVN. Funcionó bastante bien, estábamos listos y funcionando en un par de horas.
Estoy totalmente de acuerdo con la respuesta de Jon Galloway. También intenté usar vss2svn, pero descubrí que había muchos problemas con el repositorio importado y al final decidí que no valía la pena el esfuerzo necesario para limpiarlo. Acabamos de importar una copia del código en subversión y hemos vuelto a VSS en la rara ocasión en que debía consultarse una versión anterior del código.
En mi empresa anterior también utilizamos el mismo enfoque para migrar de ClearCase a Subversion, y no recuerdo ninguna ocasión en la que necesitáramos regresar a ClearCase para ver la historia.
El mayor problema fue lograr que todos cambiaran al nuevo repositorio al mismo tiempo, pero como desarrollador único no debería haber ningún problema allí.
Recomiendo solo agregar su código a un nuevo repositorio de Subversion en lugar de importar desde VSS. VSS tiene un modelo de control de versiones intrincado que no se adapta bien a muchos otros sistemas, y comenzar de nuevo es la mejor manera de evitar llevar ese desorden contigo.
Si necesita mantener el historial, haga que su depósito de VSS sea de solo lectura.
Descargamos y probamos varias herramientas de migración y recomendaría Polarion SVNImporter .
Lo usamos para llevar a cabo una migración selectiva de casi un Gb de un repositorio VSS6 a Subversion. Como el código fuente está disponible, pudimos corregirlo y adaptarlo a nuestras necesidades específicas (detección de archivos vinculados).
La versión CodePlex de VSStoSVN es una de las mejores que he encontrado. Tuve muy malos resultados con la versión de PumaCode, pero esta funcionó sin problemas.
He usado vss2svn con gran éxito.
Mi empresa ha desarrollado una herramienta de migración de Source Safe to Subversion: http://www.abstrakti.com/en-US/Products/Krepost
Esta herramienta se desarrolló después de tener problemas con cualquier otra herramienta, cuando tuvimos que migrar el repositorio de un cliente.
Avíseme si tiene algún problema, con gusto lo ayudaré.
Eric.
La siguiente herramienta funciona bastante bien: http://www.pumacode.org/projects/vss2svn/wiki/RunningTheMigration
Lleva un poco de trabajo limpiar el repositorio importado, pero si realmente quieres conservar tu historial, puede valer la pena.
Editar: el dominio pumacode.org se ha ido, el código ahora está alojado en https://github.com/irontoby/vss2svn
Hicimos esta migración recientemente en el trabajo. Yo sugiero fuertemente:
- Simplemente agregue el nuevo código de VSS, tome el hit que el historial pre-svn tendrá que permanecer en el antiguo repositorio de VSS.
- Si su repositorio de VSS todavía está en uso después del volcado de código inicial, migre los cambios utilizando las Sucursales de proveedor . Es decir, suponga que su repositorio VSS es un proveedor y utiliza etiquetas con fecha para fusionar los cambios en el repositorio SVN.
Un poco más de detalle aquí .