2010-03-19 22 views
12

Actualmente estoy trabajando en ClearCase y ahora estoy migrando a GIT. Pero necesitamos esta migración de forma que todo el trabajo se realice en GIT y los datos se sincronizarán con respaldo en la transmisión de ClearCase. Tendremos los mismos nombres de rama y de secuencia en ambos GIT y CC, por lo que la creación de scripts no debería ser un problema. El problema aquí es,Sincronizar GIT y ClearCase

Puede alguien sugerir que es el mejor modelo para sincronizar CC y GIT

  1. Tienen todos Vobs en CC como única repo en GIT, y tienen la principal corriente de CC como diversos ramas en GIT. - Repo Single GIT (VOBS) y muchas ramas (flujos CC). - Esto ocupa menos espacio ya que los VOB se guardan como un solo repositorio con muchas ramas.

  2. Tienen ramas CC importantes como repositorios GIT independientes y cada repositorio tiene todos los VOB CC. - Muchos repositorios de GIT para muchas sucursales de CC: esto ocupará mucho espacio a medida que los VOB se repliquen.

¿Cuál cree que es la mejor manera de mantenerlo sincronizado con ClearCase

Respuesta

4

Tener todos los Vobs en CC como única repo en GIT, y tienen la principal corriente de CC como diversas ramas de GIT

No y sí

tener importantes ramificaciones CC como repositorios GIT independientes y cada repositorio que tienen todos los VOB CC

no y no

Al volver a leer my answer about Git limits, no debería intentar meter todo en un repositorio de Git.
Vea también "What are the basic clearcase concepts every developer should know?" para una comparación entre ClearCase y Git.

La secuencia se puede importar de forma segura como una bifurcación.
Pero los VOB no son necesariamente un Git Repo.

Si está utilizando UCM, recomendaría un repositorio de Git por componente de UCM.

De todos modos, debe registrar en su Git Repo una forma de saber qué vista de ClearCase utilizar para sincronizar (a través de simple clearfsimport) sus datos.
La vista utilizada para la reimportación de datos de ClearCase será una vista de UCM asociada automáticamente al flujo correcto para el VOB correcto.


Nota: menciono en una solución más simple "How to bridge git to ClearCase?", pero que no importe el toda la historia en un repositorio git.

+1

Gracias, esto parece ayudarme mucho. Estoy de acuerdo en que tener todos los VOB o todos los componentes de UCM en un único repositorio hará que GIT tarde mucho tiempo en realizar la operación, especialmente si es de 20 gb. puedes aclararme sobre más cosas? Supongamos que tengo un repositorio para un componente ucm/un VOB, pero según la discusión estoy teniendo todos los flujos CC/UCM importantes como sucursales en el repositorio, es posible que diferentes desarrolladores presionen diferentes ramas del mismo repos simultáneamente sin tener que esperar si todas las ramas están en el mismo repositorio desnudo? –

+0

@Senthil: sí: puede empujar cualquier rama en un repositorio remoto remoto. Nota: si necesita varios componentes UCM (es decir, varios repositorios Git) para trabajar (ya sea leyéndolos o modificándolos), necesitará uno o varios proyectos principales con submódulos (consulte http://stackoverflow.com/questions/1979167/ git-submodule-update/1979194 # 1979194) – VonC

1

En cuanto a las ramas y repos, me gustaría ir con un VOB == regla repo a un git, ya repositorio git sirve realmente para ser utilizado por proyecto individual, de la misma manera que para vobs.

En cuanto a las ramas, los nombres de las ramas en vobs/repos deben coincidir. Eche un vistazo a los submódulos en git para ver si esto se puede usar en su caso.

Lo que personalmente me gustaría ver es un back-end maduro de git-cc, que me permita usar git en mi dev-box, mientras puedo sincronizar con el repositorio corporativo de CC que estoy obligado a usar.

4

Si bien no necesariamente lo sugiero como la "mejor" forma de sincronizar los dos, puede importar el historial y devolver los cambios a Clearcase a través de mi herramienta git-cc, como se menciona here.

Cuestiones relacionadas