GNU/Linux >> Linux Esercitazione >  >> Linux

Migra i repository tra le istanze di Gitlab

Di recente sono passato da gitolite a gitlab e all'attività rake ufficiale gitlab:import:repos ha funzionato per me. Sto usando gitlab 6.1.0 (82f3446). Ecco cosa ho fatto:

  • rsync repository nudi da gitolite a repositories/{group}/ . Assicurati di sostituire {repository} con il nome del repository gitolite e cambia il nome host del tuo server gitlab.

    rsync -rth --progress repositories/{repository}.git \
    [email protected]:/home/git/repositories/{group}/
    

    Qui, {group} è il nome del gruppo di utenti a cui si desidera aggiungere il repository. Se non hai un gruppo specifico, scegli root come nome del gruppo.

  • Correggi i permessi – necessario solo quando rsync l'utente non è git :

    sudo chown -R git:git repositories/{group}/
    
  • cd ~/gitlab

  • Esegui l'attività rake per importare tutti i nuovi repository:

    bundle exec rake gitlab:import:repos RAILS_ENV=production
    

Ora se accedi come amministratore troverai il nuovo progetto aggiunto.

Per ulteriori informazioni, fare riferimento a "Importare repository nudi nell'istanza del progetto GitLab" in http://{your-gitlab-server}/help/raketasks .

Nel tuo caso, puoi accedere al tuo vecchio sistema TKL e rsync tutti i repository nudi alla nuova istanza, seguito da un'importazione.


Un'opzione potrebbe essere:

  1. Clona il vecchio repository da gitlab su una macchina di sviluppo.
  2. Crea un repository vuoto nel nuovo gitlab.
  3. Aggiungi il nuovo repository come remoto sulla macchina di sviluppo.
  4. Riporta tutto al nuovo repository.
  5. Rimuovi il vecchio repository dall'elenco dei repository remoti.

Per creare un telecomando chiamato newRepo, fai:git remote add newRepo gitlab.localhost.com:User/newRepo.git (sostituisci l'url alla fine con quello del tuo repository)


L'ho fatto praticamente nel modo seguente dopo aver letto la risposta di ChrisA, che mi ha dato un po' di mal di testa su come farlo praticamente. L'esempio copia un repository da github a gitlab, per rendere l'origine e la destinazione un po' più chiare.

  1. Clona il vecchio repository da github su una macchina di sviluppo (che crea un semplice repository):

    $ git clone --mirror [email protected]:me/myrepo.git
    
  2. Crea un repository vuoto nel nuovo gitlab.

  3. Aggiungi il nuovo repository come remoto sulla macchina di sviluppo.

    $ cd myrepo.git
    $ git remote add newRepo [email protected]:me/myrepo.git
    
  4. Riporta tutto al nuovo repository.

    $ git push --mirror newRepo
    

Questo è tutto.

In questo modo ha copiato tutti i rami e i tag nella nuova destinazione.

Ora puoi rimuovere il repository nudo clonato dalla tua macchina di sviluppo.


Linux
  1. Come GNOME usa Git

  2. Migra tra le versioni del server

  3. Controlla se il repository git locale è avanti/dietro il telecomando

  4. Apri un file direttamente da un repository privato GitLab

  5. Qual è la best practice per la comunicazione tra istanze Amazon EC2?

Come configurare un repository Git remoto su Debian 11

Come installare Gitlab su FreeBSD

Come migrare da CentOS 8 a Rocky Linux.

Come configurare e gestire un repository Git remoto su Linux

SSH tra istanze EC2 non consentito

Come posso migrare la configurazione tra computer con hardware diverso?