Recientemente migré de gitolite a gitlab y la tarea de rake oficial gitlab:import:repos
trabajó para mi. Estoy usando gitlab 6.1.0 (82f3446). Esto es lo que hice:
-
rsync
repositorios desnudos de gitolite arepositories/{group}/
. Asegúrate de reemplazar{repository}
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 tiene ningún grupo específico, elijaroot
como el nombre del grupo. -
Arreglar 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 en 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 básicos con la nueva instancia, seguido de una importación.
Una opción sería:
- Clonar 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.
- Vuelva a colocar todo en el nuevo repositorio.
- Eliminar el repositorio anterior de la lista de repositorios remotos.
Para crear un control remoto llamado newRepo, haga: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 básico):
$ 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 manera copió todas las sucursales y etiquetas al nuevo destino.
Ahora puede eliminar el repositorio simple clonado de su máquina de desarrollo.