2009-05-15 11 views
10

He estado jugando con SVN en los últimos tiempos y he llegado a amar su poder y experiencia de usuario y que podemos vincularlo a nuestro sistema de seguimiento de errores para simplificar las vidas de todos. Así que llegó el momento en que decidimos migrar nuestra configuración de VSS 2005 a SVN y ahora me estoy despegando.¿Alguien ha migrado exitosamente VSS 2005 a SVN?

Parece que hay una serie de herramientas que afirman ser capaces de completar la migración de VSS 2005 a SVN, pero no puedo determinar cuál es la mejor o cuál me proporcionará la más completa transición. Necesito uno que migre todo el historial en lugar de simplemente consultar desde VSS y verificar en SVN.

Encontré Polarion SVN Importer que se ve potente y altamente configurable, sin embargo, no puedo hacer que esta maldita cosa funcione, se queja de que no puede sacar la lista de archivos de $/in VSS. Si ejecuto el mismo comando que está activando manualmente, todo parece funcionar bien, así que no puedo resolverlo.

¿Alguien ha migrado con éxito su fuente de VSS 2005 a SVN y, en caso afirmativo, qué herramientas usó y cuáles fueron sus conclusiones? Cualquier advertencia o inconveniente sería de lo más útil, así como cualquier cosa que sea útil/sorprendente o que sea decepcionante o simplemente tergiversada.

+1

Tendría que descartar todo el repositorio de VSS y comprobar la última versión en SVN como un gran éxito :) –

+0

Como falla tan pronto en los archivos de lista en $ /, quizás intente con una cuenta que no sea de solo lectura o otra cuenta conocida. La excepción parece una cuenta o un error de permisos. O tal vez la cuenta de usuario único está causando problemas. – Ryan

+0

lol @Mehrdad - Me inclino a estar de acuerdo; sin embargo, el requisito de traer la historia no era mío. Me gustaría archivar el repositorio existente en algún lugar para la nostalgia y seguir adelante. Tal vez un día podamos abrirlo y decir "aww, qué lindo estábamos entonces" ... – BenAlabaster

Respuesta

6

Pruebe la última revisión de troncal (aplicación de consola) para VssMigrate en Codeplex para reordenar su historial y volver a generar conjuntos de cambios desde su repositorio de VSS. También ordenará sus revisiones correctamente basado en el momento en que se registró.

http vssmigrate.codeplex.com/SourceControl/changeset/view/16890

espero que esto ayude. Puede llevar algunos ajustes en $/import.

P.S. el historial te ayuda a saber a quién culpar en un solo paso en lugar de tener que descubrir si la anotación es correcta en función de una importación, por lo que me parece bastante útil. Es mucho mejor tenerlo que no tenerlo al encontrar errores en el código anterior.

P.P.S. Incluso puede usar la nueva versión de VssMigrate para volver a importar las revisiones a un repositorio de subversión y luego fusionar en todas las revisiones después de la última revisión de importación de su revisión anterior. El único inconveniente es que todos tendrán que obtener un check-out nuevo del repositorio porque el número de revisiones se reducirá drásticamente. Básicamente, realizar una nueva migración; svnadmin vuelca el repositorio activo previamente migrado desde rev migrated + 1 como incremental y luego carga svnadmin en el repositorio recién migrado.

+0

muy buen trabajo en las actualizaciones de VssMigrate jim0301. El día antes de que los hubieras comprometido, agregué la misma funcionalidad. Cuando fui a ofrecer las actualizaciones, vi que acababas de comprometerte. E hiciste un trabajo mucho mejor que yo. Gracias por tu actualización. He estado migrando todos mis repositorios de VSS a SVN ahora durante la última semana y no he tenido problemas. Recomiendo encarecidamente a cualquiera que desee migrar VSS a SVN que consulte la última confirmación de la fuente en codeplex. (en realidad, el único problema que tuve fue que tuve que volver a descargar Log4net y volver a conectar las bibliotecas, aunque no estoy seguro de por qué) – devSolo

+0

¿Alguien sabe si VSSMigrate es compatible con VSS 6.0d (no VSS 2005)? - Lee –

3

La última vez que probé esto fue hace años. Debido a que el formato de archivo VSS no estaba documentado, para obtener un historial completo, el programa de conversión de terceros tenía que usar la API de VSS para obtener cada versión de cada archivo. Dejé que la conversión se ejecutara durante el fin de semana, vi cuánto había logrado (un pequeño porcentaje) y calculé que tomaría semanas de tiempo calendario para completar (teníamos años de historia).

Por lo tanto, decidimos mover solo una instantánea del último código en el nuevo sistema de control de versiones, y mantener un archivo de la base de datos VSS por el bien de la historia.

+0

Gracias por su aporte, tenemos probablemente un par de años de historia, pero no tenemos miles de proyectos afortunadamente solo un puñado, así que espero que las cosas hayan avanzado desde entonces ... – BenAlabaster

2

que migraron con éxito VSS 2005 a SVN hace varios meses. Utilicé la herramienta "VssMigrate.Tim2" que aparentemente está en CodePlex ahora como vssmigrate. Funcionó bien sin problemas importantes. Parecía que las revisiones y las marcas de tiempo no estaban ordenadas como esperaba, pero no era un gran problema.

EDITAR: con vssmigrate, puede elegir migrar una ruta VSS específica (por ejemplo $/GroupA/ProjectB) que reduce el tiempo de migración individual y hace que el proceso general sea menos frágil. No encontré el proceso demasiado largo, aunque solo teníamos unos seis meses de datos en VSS. Pude completar la migración y la configuración de Apache + SVN durante un fin de semana. Dependiendo del tamaño de su repositorio de VSS, es posible que desee crear múltiples repositorios SVN en lugar de un único repositorio masivo.

Estoy muy contento de habernos alejado de VSS, aunque la configuración de Apache + SVN no fue muy divertida (prueba y error). Estaba considerando Git o Mercurial, pero ninguno tenía una herramienta TortoiseXxx confiable o un plugin VS SCC en ese momento. Aunque ahora que Google code ha sido compatible con Mercurial y TortoiseHg se ve bien, estoy tentado de probar Mercurial pronto.

+0

¿Puede explicar qué no fue lo que esperaba? Sería una buena idea tener ... – BenAlabaster

+0

Parecía que los números de revisión que se crearon en SVN de VSS no se ordenaron de la más antigua a la más reciente. Esperaba que los nuevos números de revisión de SVN siguieran linealmente y secuencialmente en el tiempo desde las versiones de VSS, pero cuando volví a mirar el registro de svn, no parecía seguir un patrón. Sin embargo, era simple ordenar por fecha y hora en TortoiseSVN, por lo que no era un gran problema para mí. También miré vss2svn pero decidí vssmigrate en su lugar. – Ryan

4

Probé ambos Polarion y vss2svn hace aproximadamente un año.

Tuvimos muchos años de código en VSS, y me encontré con que después de todo, de la configuración y pruebas de que no estaba del todo satisfecho con los resultados, el proceso fue largo y frágil, y al final, decidieron solo comience con una importación limpia del último código.

Hubo algunas ocasiones en el último año en las que fui en busca de historia antigua, pero no tanto. Otra ventaja de empezar de cero es que su nuevo repositorio SVN será muy rápido.

+0

De acuerdo: hemos encontrado que este enfoque es el más "seguro", lo que significa que tenemos el control de lo que sucede, etc.Además, hemos modificado la estructura en la que almacenamos el código dentro de SVN para que funcione con nuestro material de CI: ¿adivinar que esto no habría sido tan fácil utilizando una herramienta automatizada? –

Cuestiones relacionadas