2009-02-12 11 views
16

Estamos considerando pasar de ClearCase a Subversion. El proyecto ha estado allí 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.¿Cuál es la mejor estrategia al migrar de ClearCase a SVN?

Tengo curiosidad por si alguien ha hecho una migración similar.

  • ¿Será SVN capaz de manejar un proyecto tan grande?
  • ¿Tiene sentido migrar todas las versiones/ramas históricas? ¿Las herramientas que pueden hacerlo selectivamente?
  • ¿Cuánto durará 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?
+0

Respondo la pregunta. ;-) –

+0

pregunta breve. Windows? – Avram

Respuesta

9

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

  • que no es necesario importar toda la historia de las versiones 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.

  • que tenga que pensar en reorganización durante una migración:?? ¿Qué es lo que importa, ¿qué se puede dejar y qué quiere el contenido SVN reflejar exactamente la estructura de los archivos como se almacena en el 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ápido en el ClearCase 2 vías SVN, desde SVN es repositorio centradas y cometer un conjunto de archivos, mientras que ClearCase es archivo centradas y se compromete archivo por archivo (mucho sloooower)

  • si el conjunto de archivos a importar está claramente identificado, el proceso de migración puede repetirse varias veces, lo que significa que puede continuar trabajando en ClearCase mientras se realiza la primera importación (grande) y luego colocar una línea base (etiqueta UCM) en su código, y vuelva a importar solo el delta, terminando de manera efectiva el proceso de migración.

1
  1. Sí, Subversion puede manejar proyectos muy grandes. Por ejemplo, todos los Apache projects están en un solo depósito de Subversion con los subproyectos como subcarpetas simples
  2. Si tiene sentido convertir todo el historial, debe decidirlo usted mismo. Pero hay muchas herramientas disponibles. Se puede encontrar una buena publicación en el blog here.
  3. No sé cuánto tiempo lleva una conversión de este tipo. Pero puedes probar primero con un pequeño subconjunto y medir el tiempo.
+0

Al contrario de lo que piensas, Apache no es un proyecto muy grande, ni siquiera es un proyecto grande. Solo tiene unos 30 contribuyentes más o menos. Es un proyecto de tamaño mediano. SVN no es realmente capaz de manejar grandes proyectos. El tamaño de la base de código no es realmente un factor decisivo tanto como el número de personas que necesitan cooperar y la cantidad de interacción, bifurcación y fusión. –

+0

Eche un vistazo al repositorio de Apache (http://svn.apache.org/repos/asf/) antes de hacer suposiciones falsas sobre el tamaño del proyecto. El repositorio no solo aloja el proyecto del servidor web Apache, sino * todos * proyectos Apache, junto con cientos de committers. – Stefan

+0

El tamaño de la base de código generalmente no es un problema para ningún sistema de control de fuente. Con la excepción de tal vez ClearCase, que en versiones anteriores tenía un límite de 16 millones de objetos por vob, lo que significaba cualquier versión o etiqueta aplicada a cualquier versión. Necesitabas decenas de vobs para proyectos grandes o comenzaste a eliminar versiones antiguas. No es relevante para esta pregunta en particular, pero lo que dices sobre Apache aún no lo convierte en un proyecto grande, solo una gran base de código. SVN es perfectamente capaz de manejar una gran base de código, pero no realmente un gran número de contribuyentes y un complejo proceso de desarrollo. –

5

Primeros algunos recursos:

  1. Clearvision CC2SVN Tool
  2. SVN Importer by Polarion
  3. Article and resources on CollabNet

El tamaño del repositorio real, 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, intentaría 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 de tiempo 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.

1

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.

Cuestiones relacionadas