Concatene los repositorys CVS y Git en un repository de Git

Esta es una pregunta multifase. Estoy buscando el estado del arte actual para completarlo y vincular resources separados haciendo partes disjuntas.

Breve historia de lo que necesito:

  1. convertir un repository CVS de historia completa en git como base
  2. concatenar un repository git existente para ese mismo proyecto además del anterior
  3. publicar el repository fusionado en github
  4. combinar en horquillas desde el 2do paso

Mi problema es el siguiente (una historia más larga):

  • Tengo un repository CVS original relativamente grande, llamémoslo O_cvs con algunas twigs, tags, etc., mucha historia por más de 10 años.
  • En algún momento se hizo una copy (uno de) de un pago de ese repo O_cvs y se empujó a un repo de Git como punto de partida, llamémoslo O_git . No hubo más compromisos con O_cvs ; ni se planea un desarrollo posterior en O_cvs después de la migration.
  • O_git tenía una serie de funciones añadidas y proyectos bifurcados, algunas se fusionaron mediante requestes de extracción y otras no, digamos F1_git , F2_git , etc.

Por lo tanto, mi plan con una pregunta cuando corresponda:

  1. Me preocupo por la historia, los queueboradores y las tags en O_cvs que me gustaría conservar como base. Como resultado, me gustaría producir un repository, llamémoslo G_git (¿local?) De O_cvs . ¿Cuál es la herramienta recomendada actualmente para hacer eso por mí? Investigué aquí y en todas partes y encontré diferentes sugerencias publicadas durante los años presentados, por ejemplo, aquí , aquí y aquí :
    • git-cvsimport
    • extensión svn2git de svn2git
    • Envoltorio CVS2GIT para cvs2git de Tikal
    • " crap " – Progtwig de acceso remoto de Cvs
    • Más herramientas de kernel.org
  2. Luego planeo publicar G_git en GitHub (solo pregunta aquí si esta es la order), como G
  3. Me preocupo por el O_git y sus tenedores, alojados en otro lugar, así que lo O_git .
  4. Quiero concatenar las historias de G_git + O_git , y empujarlas a GitHub, en el repo combinado G De mi investigación "injerto" e import rápida parecen ser el path a seguir aquí.
    • Entonces, ¿ injertaría O_git en G_git en GitHub (debería realizarse un injerto antes de empujar G_git hacia GitHub?)
  5. Trabajaré en requestes de extracción a O_git desde F1_git , F2_git , etc. (puede tomar un time, pero G necesita estar fuera antes) para integrarlos en G (¿habrá algún problema? ¿Tengo que pasar por los pasos intermedios para O_git , y luego a través de un control remoto adicional a G ?)

Se agradecen las recomendaciones sobre las herramientas actuales y la secuencia anterior y las dificultades asociadas.

La mejor solución recomendada (tengo mucha experiencia en ese tema) es mantener el repository de CVS como repository de solo lectura y fusionar la última revisión en el repository de git sin historial. ¡Te beneficiará mucho a largo ploop!

Acerca de la herramienta para la migration, pruebe (mi herramienta): https://github.com/tikalk/tikal-alm-tools