Aide à la migration

Sur ces pages vous trouverez les informations et conseils pour migrer proprement un projet d'une autre forge (forge imag, github ...) vers gricad-gitlab

Quelques remarques pour commencer: * sauf cas exceptionnel, il est malheureusement peu probable que vous puissiez tout transférer simplement et automatiquement d'une forge à une autre * dans tous les cas il faudra créer un nouveau projet sur la plate-forme cible et ajouter à ce projet toutes les personnes concernées (qui devront donc au préalable s'être crée un compte). * votre connexion ssh devra être correctement configurée

Transfert d'un projet github vers gricad-gitlab

C'est très simple, il suffit de créer un nouveau projet sur gricad-gitlab.univ-grenoble-alpes.fr et de cliquer sur 'import project from GitHub' puis de suivre les instructions.

Transfert d'un projet gitlab.com vers gricad-gitlab

La fonctionnalité "import project from gitlab.com' n'est pas disponible dans la version "community edition".

Cependant le transfert du dépôt git est assez simple: il faut créer un nouveau projet, cliquer sur 'import project from Repo by URL' et suivre les instructions.

Transfert d'un projet forge.imag.fr

Il n'existe malheureusement pas de procédure automatique pour transférer un projet de forge.imag.fr vers gricad-gitlab.univ-grenoble-alpes.fr (ou vers gitlab, github etc .).

Dans tous les cas il faudra créer un nouveau projet sur gricad-gitlab et ajouter à ce projet toutes les personnes concernées.

La démarche à suivre va dépendre du gestionnaire de version utilisé sur forge.imag.fr et de ce que vous voulez transférer.

git (forge.imag) vers gricad-gitlab

Il faut dans un premier temps créer un nouveau projet sur gricad-gitlab.univ-grenoble-alpes.fr et ajouter à ce projet les anciens membres du projet forge.imag.

Ensuite, dans un terminal (copie de la commande affichée dans l'onglet SCM de votre projet sur forge.imag)

git clone git+ssh://FORGEIMAG_USERNAME@scm.forge.imag.fr/var/lib/gforge/chroot/scmrepos/git/FORGEIMAG_PROJECT.git

en adaptant FORGEIMAG_USERNAME et FORGEIMAG_PROJECT.

C'est l'occasion de faire éventuellement un peu de tri et de nettoyage dans le dépôt:

cd FORGEIMAG_PROJECT
git gc --aggressive

Voir par exemple https://git-scm.com/docs/git-gc.

Puis, en supposant que le projet cible sur gricad-gitlab fasse partie du groupe GROUPNAME et se nomme PROJECT:

git remote rename origin origin-old
git remote add origin git@gricad-gitlab.univ-grenoble-alpes.fr:GROUPNAME/PROJECT.git
git push -u origin --all
git push -u origin --tags

Ce qui consiste à:

  • renommer le dépôt 'remote' origin (forge.imag) en origin-old
  • ajouter un nouveau dépôt origin, celui du projet PROJECT sur gricad-gitlab
  • pousser le dépôt git local vers gricad-gitlab
  • supprimer l'ancien 'remote' (celui de forge.imag)

A noter que vous pouvez retrouver toutes ces dernières instructions sur la page d'accueil de tout nouveau projet sur gricad-gitlab.

svn (forge.imag) vers gricad-gitlab

Vous pouvez utiliser l'outil svn2git. L'installation et l'utilisation de ce soft sont détaillées sur la page web de svn2git. A noter qu'il existe une autre version de svn2git : svn-all-fast-export annoncée comme plus rapide mais que nous n'avons pas testé. (N'hésitez pas à déposer un ticket pour partager vos éventuels retours d'utilisation).

Un exemple pour un projet sur la forge imag:

  • Créez un nouveau projet sur gricad-gitlab, notez les infos affichez en bas de la page d'accueil du projet dans la partie "Existing git repository".

  • Sur forge.imag.fr, allez dans l'onglet 'SCM/SOURCES' de votre projet pour récupérer le nom du dépôt svn (tout ce qui est après 'svn checkout' SANS le trunk en fin de ligne) et qui doit ressembler à

svn+ssh://USERNAME@scm.forge.imag.fr/var/lib/gforge/chroot/scmrepos/svn/NOM_DU_PROJET/
  • Créez et éditez un fichier authors.txt contenant la liste des auteurs présents dans l'historique du dépôt svn :
root = root <root@nowhere.com>
username1 = PRENOM NOM <email>
username2 = PRENOM NOM <email>
...

à adapter bien évidement en fonction des noms, emails des différents utilisateurs. username == login sur forge.imag. Attention : ne pas modifier la première ligne (root = ...)

  • Dans un terminal, après avoir installé svn2git:
mkdir tmpgit
cd tmpgit
svn2git svn+ssh://fperignon@scm.forge.imag.fr/var/lib/gforge/chroot/scmrepos/svn/paraviewplugin --metadata --authors ./authors.txt

Puis ajoutez le nouveau dépôt git (celui de gricad-gitlab) comme dépôt "remote". Pour cela, il suffit de copier ce qui est indiqué dans la partie "Existing git repository" sur la page d'accueil du projet nouvellement crée:

git remote add origin git@gricad-gitlab.univ-grenoble-alpes.fr:NOM_GROUPE/NOM_PROJET.git
git push -u origin --all
git push -u origin --tags

Pages web

Comment transférer un site web hébergé sur forge.imag.fr vers gricad-gitlab?

Il suffit :

  • de copier le contenu du répertoire htdocs de votre projet forge vers un répertoire htdocs dans votre projet gitlab
  • de créer dans votre projet sur gricad-gitlab un fichier .gitlab-ci.yml, à la racine du projet, contenant les lignes suivantes :
pages:

  image: python:alpine
  script:
  - cp -R htdocs public/
  artifacts:
    paths:
    - public
  only:
  - master

A chaque push vers votre projet gricad-gitlab, un site web construit à partir du contenu de htdocs sera déployé, à l'adresse suivante :

https://GROUPE.gricad-pages.univ-grenoble-alpes.fr/PROJET

GROUPE = nom du groupe hébergeant le projet (ou username en l'absence de groupe) PROJET = nom du projet

Pour plus de détails sur ce mécanisme voir : doc gitlab-pages

Pour conserver l'ancien nom du site web (en forge.imag) voir avec les services info de votre labo.

Listes de diffusion

Pas de transfert possible, celles-ci n'étant pas gérées sur gitlab. Il faut utiliser le service proposé par l'uga: https://listes.univ-grenoble-alpes.fr/sympa