¿Cómo migrar de RTC Jazz a Git?
version-control (3)
Tenía el mismo trabajo, es decir, convertir una secuencia completa con varios componentes en repositorios git separados. Después de probar el script de python antes mencionado, me pareció demasiado complicado (por ejemplo, seleccionar todas las URL en eclipse para crear archivos de historial, buscar las líneas de base, etc.) y no ser confiable en absoluto. Al menos no para componentes con más de 4000 conjuntos de cambios.
Así que escribí otro script en Perl, que funciona casi al instante, al menos en Windows 7.0. El script incluye muchas soluciones para todos los errores en scm, por lo que no tiene que preocuparse por ello.
Hizo su trabajo y tal vez también pueda ayudarlo.
Ralf
Mi equipo se vio obligado a migrar de SVN a RTC Jazz scm hace aproximadamente un año. dado que estamos muy descontentos con RTC, hemos decidido abandonarlo y cambiar a Git para el control de versiones.
No he encontrado mucha información sobre la migración de RTC en general, pero encontré este Rational Adapter for Git (que no estoy seguro de que se pueda usar para este tipo de migración).
¿Cuál será la mejor forma de migrar nuestro código fuente y cambiar el historial de RTC jazz a Git?
He probado el adaptador y confirmo que no es para migración. Es para vincular una confirmación de git con un conjunto de cambios de RTC.
La migración en sí misma es limitada e involucraría solo la parte de control de origen, no los elementos de trabajo o las compilaciones.
Por lo general, establezco un espacio de trabajo de repositorio para las últimas líneas de base y los importo a un árbol de trabajo de git. No obstante, no importo los nombres de los autores.
La importación aprovecha las --git-dir
y --work-tree
del comando git
.
(Como se ilustra en esta respuesta o esta )
Puede escribir desde cualquier lugar:
git --work-tree=/path/to/sandbox --git-dir=/path/to/repo/.git status|add|...
Pruebe primero un estado para ver lo que va a importar. Puede agregar al archivo /path/to/repo/.git/exclude
algún patrón para excluir de los elementos de importación que no desee (¡como la carpeta .jazz5
!).
Por supuesto, /path/to/sandbox
puede ser cualquier subcarpeta dentro de ese sandbox: no tiene que importar todo.
Repita ese proceso con la misma caja de arena, actualizada con diferentes líneas de base / instantáneas, desde la más antigua a la más reciente.
Eso da una historia cruda, que es suficiente para comenzar.
Como nos topamos con el mismo problema y queríamos mantener nuestra historia, comenzamos a crear un script de python, que automatiza el proceso para migrar RTC SCM Stream por Stream a GIT.
El script se puede encontrar aquí: https://github.com/rtcTo/rtc2git
Algunos detalles de cómo funciona el programa: se basa en la CLI de RTC.
- Entra en un repositorio de git vacío lo clona y allí crea un espacio de trabajo basado en la secuencia más antigua.
- Para un flujo dado, dado por un archivo de configuración, lee las líneas de base del componente.
- Para cada línea de base de este componente, se ejecutará un comando de comparación (para ver todas las diferencias, lamentablemente comparando directamente con la última transmisión arroja una excepción @RTC Versión 5.0.1)
- El resultado de la comparación se analizará para obtener las informaciones necesarias (autor, comentario, fecha, etc.)
- El cambio será aceptado en el espacio de trabajo y poco después se ejecutará el comando git correspondiente para hacer lo mismo en git
Para cada secuencia se creará una rama
Básicamente eso es todo. Si lo desea, también puedo proporcionar algunos comandos de muestra, que me han ayudado a obtener la información necesaria (la información es muy poco frecuente sobre aspectos específicos de la CLI de RTC).
EDITAR: Considero que la versión actual del programa es estable. Así que pruébalo. :) Doy la bienvenida a cualquier comentario.