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

Estamos considerando pasar de ClearCase a Subversion. El proyecto ha estado ahí por un time (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: alnetworkingedor de 2 millones de líneas de código java.

Tengo curiosidad si hay alguien que haya hecho una migration similar.

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

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 labeldas (la que se aplica consistentemente en todos los files de un set determinado), a less que tenga una necesidad real de un examen de revisión de historial detallado.

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

  • la migration es más rápida en el modo SVC de ClearCase 2, ya que SVN está centrado en el repository y confirma un set de files, mientras que ClearCase está centrado en files y confirma file por file (mucho más lento)

  • si el set de files a importar está claramente identificado, el process de migration puede repetirse varias veces, lo que significa que puede seguir trabajando dentro de ClearCase mientras tiene lugar la primera import (grande) y luego colocar una línea base (label UCM) su código, y reimportar solo el delta, terminando efectivamente el process de migration.

Primero algunos resources:

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

El tamaño del repository real, el número de files o sus tamaños no son un factor limitante para SVN. La cantidad de desarrolladores, la concurrency de cambios, la complejidad de la integración y el process de publicación, la necesidad de fusión y el control de versiones de directorys (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 migration personalizada que saca datos de ClearCase y no es una tarea fácil. Cada dos sistemas tienen diferentes models de datos y operaciones sobre los datos. No recomendaría intentar escribir ninguna herramienta de migration personalizada, porque es muy difícil sacar datos de ClearCase de manera significativa. Para get detalles sobre las limitaciones de las soluciones comerciales, sugeriría que contacte a los proveedores de soluciones vinculados en resources.

Personalmente, trataría de get la mayor cantidad de datos posible, pero debe tener en count las limitaciones de SVN en comparación con ClearCase. Es probable que se pierda el historial de versiones de directorys (refactorización) durante esta migration. SVN no es compatible con twigs dispersas como ClearCase, lo que podría boost el tamaño de su repository SVN en caso de que utilice twigs de tareas. En ese caso, es probable que desee limitarse solo a las twigs del sistema. Los files en ClearCase tienen una estructura de bifurcación individual, mientras que SVN tiene twigs por tipo de producto, lo que dará como resultado una gran cantidad de traducción de bifurcación en el process. Al restringirse a las twigs del sistema y tal vez solo a la versión labelda en esas twigs para get tags 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 database de ClearCase tiene muchas razones raras de locking, 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 migration. 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 optimization, paralelización y migration incremental que networkingujo a alnetworkingedor de una semana. Pero espere que dependiendo de qué tan bien se haga la herramienta, podría haber mucha variación en el time que lleva. Aunque desde que migraste a SVN e ignorarás mucho el historial y los metadatos de ClearCase, tu migration 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 repositorys después de algún procesamiento, lo que le permitirá un cambio de fin de semana, con cero time de inactividad de desarrollo. Si esto no es posible, intente solicitar alguna alternativa, como la migration incremental, en la que primero migre hasta una date determinada, y luego migre una cantidad menor de datos modificados desde esa date.

Una parte muy importante del process es la fase posterior a la migration. Por favor, no descarte los dolores de cabeza que el cambio traerá a sus desarrolladores. No debe subestimar la necesidad de capacitación y documentation 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 migration. 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 less que los incorpore al principio del process, puede perderlos o, peor aún, get la inversión completa, declarar un desastre y perder su propio trabajo.

si decides moverte, puedes mirar esta pregunta de stackoverflow.
recommendation-on-tools-to-migrate-from-clearcase-to-svn

  1. Sí, Subversion puede manejar proyectos muy grandes. Por ejemplo, todos los proyectos de Apache están en un único repository 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 time lleva una conversión así. Pero puedes probar primero con un pequeño subset y medir el time.

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