Importar repositorio CVS a GIT (sourceforge a github) de manera facil

Argentum Online Logo

Esto fue hecho para el proyecto Argentum Online Libre (http://www.argentumonline.org) el cual es una continuacion del trabajo realizado aqui https://sourceforge.net/projects/morgoao/

Argentum Online es un juego MMORPG bajo la licencia AGPL y fue creado por una variedad de personas a lo largo del tiempo desde 1999, esta desarrollado en Visual Basic 6, si bien el juego sigue desarrollandose mediante muchos “mods” los encargados de los mismos no respetan la licencia (AGPL) durante los ultimos 8 años no se libero ninguna linea de codigo (la ultima liberada fue en 2011 cuando hoy estamos en 2019) por lo que se decidio darle un aire nuevo a esto y al menos dejar todo acomodado para que cualquier persona que quiera poder ver como esta hecho el juego o agregarle contenido sea libre de hacerlo.
Se utiliza una filosofia totalmente open-source y cualquiera esta invitado a enviar Pull Requests a los distintos repositorios.

Organizacion de github:
https://github.com/ao-libre

Empezamos con la importacion de CVS a GIT

Descargamos una copia local del repositorio de CVS que estan en sourceforge de la siguiente forma (recordar que CVS no es descentralizado como GIT):

Con este comando deberian tener una carpeta llamada cvs con todos los repositorios de sourceforge.

Descargamos el programa cvs2git
http://cvs2svn.tigris.org/cvs2git.html

Comando para crear archivos con formato “fast-import” para usarlo luego:

Creamos un repositorio con el comando:

Importar historial CVS a GIT con la herramienta fast-import de git

Luego agregamos el repositorio de Github al cual pushear

Cambiar autoria de los commits:

Con este comando vemos todos los autores que hay en el repositorio:

Para cambiar la autoria de los commits, deben poner el usuario y email que estan usando los autores en github actualmente (tienen que buscarlos por internet o contactarlos de alguna forma manualmente), deben hacer esto por cada autor.

Si aparece el mensaje:

Usar el comando:

Y listo ya tenemos la conversion hecha.

— — — — — — — — — — — — -

Suponiendo que ya empezamos a trabajar en algun repositorio sin antes hacer la conversion y ahora deseamos poner todo el historial de trabajo del CVS a nuestro actual repositorio tenemos que hacer un `git rebase` en el repositorio en el cual estamos usando de la siguiente forma:

Suponiendo que cvs2gitao.git es el repositorio en el cual creamos la conversion anteriormente.

Notese que `theirs` es lo opuesto que se puede pensar ya que es el repositorio en el cual estamos parados y no el que vamos a mergear.

En caso de haber conflictos con el mergeo solo hagan lo siguiente por cada conflicto:

Y listo ya tienen la importación de todo el historial a su actual repositorio hecha.

Fuente:

http://olegp.name/howto/convert-sourceforge-cvs-to-git/
(la fuente citada usa la herramienta git cvsimport la cual es obsoleta y no esta mas en git)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store