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:
-
rsyncrepository nudi da gitolite arepositories/{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 \ example@unixlinux.online:/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, sceglirootcome nome del gruppo. -
Correggi i permessi – necessario solo quando
rsyncl'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:
- Clona il vecchio repository da gitlab su una macchina di sviluppo.
- Crea un repository vuoto nel nuovo gitlab.
- Aggiungi il nuovo repository come remoto sulla macchina di sviluppo.
- Riporta tutto al nuovo repository.
- 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.
-
Clona il vecchio repository da github su una macchina di sviluppo (che crea un semplice repository):
$ git clone --mirror example@unixlinux.online:me/myrepo.git -
Crea un repository vuoto nel nuovo gitlab.
-
Aggiungi il nuovo repository come remoto sulla macchina di sviluppo.
$ cd myrepo.git $ git remote add newRepo example@unixlinux.online:me/myrepo.git -
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.