GNU/Linux >> Tutoriales Linux >  >> Linux

Migrar repositorios entre instancias de Gitlab

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 a repositories/{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, elija root como el nombre del grupo.

  • Arreglar permisos:solo es necesario cuando el rsync el usuario no es git :

    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:

  1. Clonar el antiguo repositorio de gitlab en una máquina de desarrollo.
  2. Cree un repositorio en blanco en el nuevo gitlab.
  3. Agregue el nuevo repositorio como un control remoto en la máquina de desarrollo.
  4. Vuelva a colocar todo en el nuevo repositorio.
  5. 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.

  1. 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
    
  2. Cree un repositorio en blanco en el nuevo gitlab.

  3. 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
    
  4. 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.


Linux
  1. Instalar GitLab en CentOS 7

  2. Instalar GitLab en Debian 10

  3. Instalar GitLab en Ubuntu 18.04

  4. Migrar entre sabores de servidor

  5. ¿Cómo copiar confirmaciones de un repositorio de Git a otro?

Cómo configurar un repositorio Git remoto en Debian 11

Cómo instalar Gitlab en FreeBSD

Cómo migrar de CentOS 8 a Rocky Linux.

Cómo configurar y administrar un repositorio Git remoto en Linux

No se permite SSH entre instancias EC2

¿Cuál es la mejor práctica para la comunicación entre instancias de Amazon EC2?