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 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 \ [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, scegliroot
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:
- 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 [email protected]: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 [email protected]: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.