two tortoise subversion repositorio estructura create crear branches svn migration clearcase

tortoise - ¿Cuál es la mejor estrategia al migrar de ClearCase a SVN?



svn merge branch to trunk (5)

Estamos considerando pasar de ClearCase a Subversion. El proyecto ha estado ahí por un tiempo (7 años) y hay tres versiones "principales" (sucursales) que apoyamos activamente, más algunas correcciones ocasionales en versiones anteriores. El proyecto es bastante grande: alrededor de 2 millones de líneas de código java.

Tengo curiosidad si hay alguien que haya hecho una migración similar.

  • ¿SVN podrá manejar un proyecto tan grande?
  • ¿Tiene sentido migrar todas las versiones / ramas históricas? ¿Las herramientas que pueden hacerlo selectivamente?
  • ¿Cuánto tiempo llevará el proceso de migración para un proyecto así y cuál es la forma efectiva de trabajar, entonces la migración está en progreso?

  1. Sí, Subversion puede manejar proyectos muy grandes. Por ejemplo, todos los proyectos de Apache están en un único repositorio de Subversion con los subproyectos como subcarpetas simples
  2. Si tiene sentido convertir toda la historia, debes decidir por ti mismo. Pero hay muchas herramientas disponibles. Una buena publicación de blog se puede encontrar aquí .
  3. No sé cuánto tiempo lleva una conversión así. Pero puedes probar primero con un pequeño subconjunto y medir el tiempo.

Por haber hecho varias migraciones de este tipo, yo diría que:

  • no es necesario que importe todo el historial de las versiones de ClearCase en SVN. La mayoría de las veces (según mi experiencia), solo se necesitan las versiones etiquetadas (la que se aplica consistentemente en todos los archivos de un conjunto determinado), a menos que tenga una necesidad real de un examen de revisión de historial detallado.

  • debe pensar en la reorganización durante una migración: ¿qué importa ?, ¿qué deja? y ¿desea que el contenido SVN refleje exactamente la estructura de los archivos almacenados en ClearCase VOB? En algún momento, tales migraciones son la ocasión para repensar algunos de esos archivos de organización (generalmente a través de simples reglas de cambio de nombre para ciertos directorios).

  • la migración es más rápida en el modo SVC de ClearCase 2, ya que SVN está centrado en el repositorio y confirma un conjunto de archivos, mientras que ClearCase está centrado en archivos y confirma archivo por archivo (mucho más lento)

  • si el conjunto de archivos a importar está claramente identificado, el proceso de migración puede repetirse varias veces, lo que significa que puede seguir trabajando dentro de ClearCase mientras tiene lugar la primera importación (grande) y luego colocar una línea base (etiqueta UCM) su código, y reimportar solo el delta, terminando efectivamente el proceso de migración.


Primero algunos recursos:

  1. Herramienta Clearvision CC2SVN
  2. Importador SVN por Polarion
  3. Artículo y recursos en CollabNet

El tamaño del repositorio real, el número de archivos o sus tamaños no son un factor limitante para SVN. La cantidad de desarrolladores, la concurrencia de cambios, la complejidad de la integración y el proceso de publicación, la necesidad de fusión y el control de versiones de directorios (refactorización) podrían plantear problemas para un proyecto grande. Si su proyecto es solo grande, pero es bastante estable, con un número bajo de desarrolladores, pocas sucursales y sin necesidad de volver a importar miles de correcciones a varias versiones anteriores, SVN debería funcionar bien para usted.

He escrito una herramienta de migración personalizada que saca datos de ClearCase y no es una tarea fácil. Cada dos sistemas tienen diferentes modelos de datos y operaciones sobre los datos. No recomendaría intentar escribir ninguna herramienta de migración personalizada, porque es muy difícil sacar datos de ClearCase de manera significativa. Para obtener detalles sobre las limitaciones de las soluciones comerciales, sugeriría que contacte a los proveedores de soluciones vinculados en recursos.

Personalmente, trataría de obtener la mayor cantidad de datos posible, pero debe tener en cuenta las limitaciones de SVN en comparación con ClearCase. Es probable que se pierda el historial de versiones de directorios (refactorización) durante esta migración. SVN no es compatible con ramas dispersas como ClearCase, lo que podría aumentar el tamaño de su repositorio SVN en caso de que utilice ramas de tareas. En ese caso, es probable que desee limitarse solo a las ramas del sistema. Los archivos en ClearCase tienen una estructura de bifurcación individual, mientras que SVN tiene ramas por tipo de producto, lo que dará como resultado una gran cantidad de traducción de bifurcación en el proceso. Al restringirse a las ramas del sistema y tal vez solo a la versión etiquetada en esas ramas para obtener etiquetas totalmente integradas en la serie, puede ahorrarse un montón de problemas. En caso de que su equipo esté usando UCM, puede olvidarse de todos los metadatos de UCM. No se traducirán a SVN.

El marco temporal depende en gran medida de las herramientas utilizadas. Para un proyecto importante como el que tienes, podrían ser incluso semanas. La base de datos de ClearCase tiene muchas razones raras de bloqueo, incluso en las operaciones de lectura, y hay una tabla central de todo lo que crea muchos problemas en el acceso a gran escala como lo haría la migración. La primera vez que ejecuto mi herramienta en un producto un poco más grande que el suyo, estimamos que se ejecutará durante 3 años, después de una gran optimización, paralelización y migración incremental que redujo a alrededor de una semana. Pero espere que dependiendo de qué tan bien se haga la herramienta, podría haber mucha variación en el tiempo que lleva. Aunque desde que migraste a SVN e ignorarás mucho el historial y los metadatos de ClearCase, tu migración debería ser mucho más rápida.

ClearVision, menciona en sus páginas que su herramienta CC2SVN puede crear un puente entre los dos productos. Aunque no utilicé esta herramienta, si funciona como supongo, le permitirá sincronizar los 2 repositorios después de algún procesamiento, lo que le permitirá un cambio de fin de semana, con cero tiempo de inactividad de desarrollo. Si esto no es posible, intente solicitar alguna alternativa, como la migración incremental, en la que primero migre hasta una fecha determinada, y luego migre una cantidad menor de datos modificados desde esa fecha.

Una parte muy importante del proceso es la fase posterior a la migración. Por favor, no descarte los dolores de cabeza que el cambio traerá a sus desarrolladores. No debe subestimar la necesidad de capacitación y documentación clara. También necesitará un equipo de soporte capacitado en su departamento de ingeniería de software capaz de operar ambos sistemas SCM y explicarles a los desarrolladores cómo hacer las cosas a las que estaban acostumbrados en el nuevo sistema. Este es en realidad un punto que podría romper tu cuello en la migración. Los desarrolladores se resisten a cualquier cambio y cualquier ventaja que SVN le brinde al proyecto, es en esencia un sistema muy inferior. ClearCase brinda a sus desarrolladores tanta flexibilidad que nunca tendrán con SVN y, a menos que los incorpore al principio del proceso, puede perderlos o, peor aún, obtener la inversión completa, declarar un desastre y perder su propio trabajo.


Otra opción es Migrate2SVN . El desarrollador (Clearvision) acaba de lanzar v2.0 y parece incluir muchas, MUCHAS mejoras sobre el software Polarion y otros métodos mencionados anteriormente.