Hacemos una revisión profunda cada escrito de nuestro espacio con la meta de enseñarte siempre información veraz y actual.
Solución:
Este es el proceso que usé para migrar un repositorio CVS de SourceForge a Git usando cvs2git (la última versión estable está aquí, pero IIRC usé la versión de desarrollo de github), que funciona tanto en Windows como en Linux sin necesidad de compilación, ya que es solo Python.
También tú no es necesario poseer el repositorio con este método, puede, por ejemplo, migrar proyectos de SourceForge que no le pertenecen (solo necesita el derecho de pago, por lo que esto funciona en cualquier repositorio público).
Cómo importar desde sourceforge CVS a git.
Primero, debe descargar/verificar el repositorio de cvs con todo el historial (no solo ver el HEAD/Trunk):
rsync -av rsync://PROJECT.cvs.sourceforge.net/cvsroot/PROJECT/* cvs
luego use cvs2git (script de python, funciona en todas las plataformas, no necesita compilación):
python cvs2git --blobfile="blob.dat" --dumpfile="dump.dat" --username="username_to_access_repo" --options=cvs2git.options --fallback-encoding utf-8 cvs
esto debería haber generado dos archivos
blob
ydump
que contiene todo su historial cvs. Puede abrirlos en un editor de texto para verificar que el contenido parece correcto.
luego inicialice su repositorio git dentro de otra carpeta:
mkdir gitexport/
cd gitexport
git init
luego cargue el historial de cvs exportado en git:
cat ../blob,dump.dat | git fast-import
y luego coloque el cursor de confirmación de git al final del historial:
git reset --hard
finalmente y opcionalmente, puede enviar a su repositorio remoto de git:
git push -u origin master
por supuesto que necesita antes de
git remote add origin https://your_repo_url
Nota: cvs2git.options
es un archivo de configuración con formato JSON para cvs2git
donde puede especificar transformaciones para varias cosas, como los nombres de los autores (de modo que sus apodos se transformen automáticamente en su nombre completo después de la importación). Consulte la documentación aquí o el archivo de opciones de ejemplo incluido.
Personalmente no he hecho una conversión de CVS a Git, pero creo que la de Eric Raymond cvs-fast-export
es la herramienta a utilizar. Él tiene la página man publicada aquí. cvsps
es otra herramienta mantenida por Eric, pero recientemente ha sido obsoleta a favor de cvs-fast-export
. cvs2git
es otra herramienta que se basa en parte de la misma maquinaria que cvs2svn
. Este último era extremadamente hábil, por lo que tengo grandes esperanzas de que cvs2git
es igualmente bueno.
Una cosa a tener en cuenta: CVS es un RCS bastante roto. Es posible que pueda tener contenido que no se pueda reflejar exactamente en Git. En otras palabras, hay un desajuste de impedancia allí, pero las herramientas se esfuerzan mucho por preservar tanto como sea posible. Asegúrese de verificar su conversión y de estar satisfecho con los resultados. Es posible que deba corregir parte del historial de Git para obtener algo más aceptable, pero dudo que sea necesario.
Puedes usar git-cvsimport
para importar su repositorio CVS a Git. De manera predeterminada, esto verificará cada revisión, brindándole un historial relativamente completo.
Dependiendo de su sistema operativo, es posible que deba instalar soporte para esto por separado. Por ejemplo, en una máquina Ubuntu necesitaría el git-cvs
paquete.
Esta respuesta entra en más detalles.
Tienes la posibilidad compartir esta división si te fue útil.