GNU/Linux >> Tutoriels Linux >  >> Linux

Migrer les dépôts entre les instances de Gitlab

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, choisissez root comme nom de groupe.

  • Correction des autorisations - uniquement nécessaire lorsque le rsync l'utilisateur n'est pas git :

    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 :

  1. Clonez l'ancien référentiel de gitlab sur une machine de développement.
  2. Créez un référentiel vierge sur le nouveau gitlab.
  3. Ajoutez le nouveau référentiel en tant que télécommande sur la machine de développement.
  4. Poussez tout vers le nouveau dépôt.
  5. 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.

  1. 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
    
  2. Créez un dépôt vierge sur le nouveau gitlab.

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


Linux
  1. Auto-complétion Git ?

  2. Migrer entre les versions de serveur

  3. Ouvrir un fichier directement depuis un dépôt privé GitLab

  4. Comment copier des commits d'un dépôt Git à un autre ?

  5. git force l'actualisation de l'index après le basculement entre Windows et Linux

Comment configurer un référentiel Git distant sur Debian 11

Comment installer Gitlab sur FreeBSD

Comment migrer de CentOS 8 vers Rocky Linux.

Comment configurer et gérer un référentiel Git distant sous Linux

SSH entre les instances EC2 non autorisé

Quelle est la meilleure pratique pour la communication entre les instances Amazon EC2 ?