Posteriormente a consultar expertos en esta materia, programadores de diversas áreas y profesores dimos con la respuesta al problema y la compartimos en este post.
Solución:
Recientemente migré de gitolite a gitlab y la tarea oficial de rake gitlab:import:repos
trabajó para mi. Estoy usando gitlab 6.1.0 (82f3446). Aquí esta lo que hice:
-
rsync
repositorios desnudos de gitolita arepositories/group/
. Asegúrese de reemplazarrepository
con el nombre del repositorio gitolite y cambie el nombre de host de su servidor gitlab.rsync -rth --progress repositories/repository.git [email protected]:/home/git/repositories/group/
Aquí,
group
es el nombre del grupo de usuarios al que desea agregar el repositorio. Si no tienes ningún grupo específico, eligeroot
como el nombre del grupo. -
Corregir permisos: solo es necesario cuando el
rsync
el usuario no esgit
:sudo chown -R git:git repositories/group/
-
cd ~/gitlab
-
Ejecute la tarea de rake para importar todos los repositorios nuevos:
bundle exec rake gitlab:import:repos RAILS_ENV=production
Ahora, si inicia sesión como administrador, encontrará el nuevo proyecto agregado.
Para obtener más información, consulte “Importar repositorios básicos a la instancia del proyecto GitLab” en http://your-gitlab-server/help/raketasks
.
En su caso, puede iniciar sesión en su antiguo sistema TKL y sincronizar todos los repositorios desnudos con la nueva instancia, seguido de una importación.
Una opción sería:
- Clone el antiguo repositorio de gitlab en una máquina de desarrollo.
- Cree un repositorio en blanco en el nuevo gitlab.
- Agregue el nuevo repositorio como un control remoto en la máquina de desarrollo.
- Empuje todo de vuelta al nuevo repositorio.
- Elimine el repositorio antiguo de la lista de repositorios remotos.
Para crear un control remoto llamado newRepo, haz lo siguiente: git remote add newRepo gitlab.localhost.com:User/newRepo.git
(reemplace la URL al final con la de su repositorio)
Lo hice prácticamente de la siguiente manera después de leer la respuesta de ChrisA, lo que me dio un pequeño dolor de cabeza sobre cómo hacerlo de manera práctica. El ejemplo copia un repositorio de github a gitlab, para que el origen y el destino sean un poco más claros.
-
Clone el antiguo repositorio de github en una máquina de desarrollo (lo que crea un repositorio simple):
$ git clone --mirror [email protected]:me/myrepo.git
-
Cree un repositorio en blanco en el nuevo gitlab.
-
Agregue el nuevo repositorio como un control remoto en la máquina de desarrollo.
$ cd myrepo.git $ git remote add newRepo [email protected]:me/myrepo.git
-
Empuje todo de vuelta al nuevo repositorio.
$ git push --mirror newRepo
Eso es todo.
De esta forma copió todas las sucursales y etiquetas al nuevo destino.
Ahora puede eliminar el repositorio simple clonado de su máquina de desarrollo.
Si conservas algún titubeo y disposición de reformar nuestro enunciado puedes escribir una referencia y con mucho gusto lo observaremos.