J'ai récemment migré de gitolite vers gitlab et la tâche officielle de rake gitlab:import:repos
travaillé pour moi. J'utilise gitlab 6.1.0 (82f3446). Voici ce que j'ai fait :
-
rsync
dépôts nus de gitolite àrepositories/{group}/
. Assurez-vous de remplacer{repository}
avec le nom du dépôt gitolite, et changez le nom d'hôte de votre serveur gitlab.rsync -rth --progress repositories/{repository}.git \ [email protected]:/home/git/repositories/{group}/
Ici,
{group}
est le nom du groupe d'utilisateurs auquel vous souhaitez ajouter le référentiel. Si vous n'avez pas de groupe spécifique, choisissezroot
comme nom de groupe. -
Correction des autorisations - uniquement nécessaire lorsque le
rsync
l'utilisateur n'est pasgit
:sudo chown -R git:git repositories/{group}/
-
cd ~/gitlab
-
Exécutez la tâche Rake pour importer tous les nouveaux dépôts :
bundle exec rake gitlab:import:repos RAILS_ENV=production
Maintenant, si vous vous connectez en tant qu'administrateur, vous trouverez le nouveau projet ajouté.
Pour plus d'informations, reportez-vous à "Importer des référentiels nus dans l'instance de projet GitLab" sous http://{your-gitlab-server}/help/raketasks
.
Dans votre cas, vous pouvez vous connecter à votre ancien système TKL et rsynchroniser tous les référentiels nus avec la nouvelle instance, suivi d'une importation.
Une option serait de :
- Clonez l'ancien référentiel de gitlab sur une machine de développement.
- Créez un référentiel vierge sur le nouveau gitlab.
- Ajoutez le nouveau référentiel en tant que télécommande sur la machine de développement.
- Poussez tout vers le nouveau dépôt.
- Supprimez l'ancien référentiel de la liste des référentiels distants.
Pour créer une télécommande appelée newRepo, faites :git remote add newRepo gitlab.localhost.com:User/newRepo.git
(remplacez l'url à la fin par celle de votre repo)
Je l'ai fait pratiquement de la manière suivante après avoir lu la réponse de ChrisA, ce qui m'a donné un peu mal à la tête sur la façon de le faire pratiquement. L'exemple copie un référentiel de github vers gitlab, pour rendre la source et la destination un peu plus claires.
-
Clonez l'ancien dépôt de github sur une machine de développement (ce qui crée un dépôt nu) :
$ git clone --mirror [email protected]:me/myrepo.git
-
Créez un dépôt vierge sur le nouveau gitlab.
-
Ajoutez le nouveau référentiel en tant que télécommande sur la machine de développement.
$ cd myrepo.git $ git remote add newRepo [email protected]:me/myrepo.git
-
Repoussez tout vers le nouveau dépôt.
$ git push --mirror newRepo
C'est tout.
De cette façon, il a copié toutes les branches et balises vers la nouvelle destination.
Vous pouvez maintenant supprimer le référentiel nu cloné de votre machine de développement.