# Migration du wiki de gforge à gitlab Dans le cadre des demi-journées banalisées au SNDI nantais, retour sur le transfert des wiki de Rorcal et Brpp. [[_TOC_]] ## Documentation sur la migration [Migration documentation DAAP](https://gitlab.insee.fr/architecture-applicative/migration/migration-documentation) <br> [Migration documentation SNDIN](https://gitlab.insee.fr/sndi-support-developpement-nantes/documentation/migration-sur-le-gitlab-en-prod/-/blob/master/README.md) ## Migration code source ### Travail préparatoire #### Creation du dépot Git Sous git bash : Mise à jour des infos persos Il est préférable de déclarer ses infos sous une configuration globale et non privée * Rectification via les commandes suivantes git config --global user.name "Prenom Nom" git config --global user.email "prénom.nom@insee.fr" * Lister tous les éléments de sa configuration Git git config -l * Lister les éléments de la configuration globale uniquement git config -l --global #### Configuration Gitlab * Enregistrement du compte déjà effectué (lien à valider reçu par mail) * Passage par l'Authentification (clic bouton) * Configuration clef SSH: * Sous son idep, ou vrir le menu déroulant en haut à droite de l'écran * Settings => SSH Keys * Identification du répertoire .SSH sur le poste de travail * Ouverture du fichier contenant la clef publique id_rsa.pub * Copier coller la clef publique dans l'encadré ssh gitlab puis => ADD Key * Vérification de la connexion ssh ssh -T git@gitlab.insee.fr EN mode verbose ssh -Tvvv git@gitlab.insee.fr ### Migration du dépot Git Rapatriement des branches Gforge à conserver (à reproduire autant de fois que nécessaire) git checkout -b maBrancheLocale origin/mabrancheDistante Mise en oeuvre du transfert de dépot * Création d'un groupe et/ou d'un sous groupe (si ce n'est pas déjà fait) associé au projet selon l'organigramme => [bouton new group](https://gitlab.insee.fr/groups/new) * Sélection du groupe créé * Création d'un nouveau projet => bouton new project A partir de git bash : * Renommage du dépot initial 'origin' existant sous gForge en gforge-origin git remote rename origin gforge-origin * Appariement du dépot Git avec Gitlab par création d'un nouveau dépot 'origine' git remote add origin git@gitlab.insee.fr:rca/rca.git * Transfert de branches * Transfert de toutes les branches locales git push -u origin --all * Transfert branche à branche (possibilité d'indiquer plusieurs branches en les déclarant à la suite séparées par un espace) git push -u origin maBrancheLocale * Pour les tags : git push -u origin --tags :heavy_check_mark: transfert de branche ok > **Problème :** la documentation est transmise au même titre que la branche ! En effet git ne distingue pas entre le code et la documentation. Faire un état des lieu avant la migration ### Incidents rencontrés * Je ne vois pas toutes les branches distantes Les branches sont déclarées nominativement. * Modifier une des déclarations pour adopter un format générique du type: par exemple dans le git config ``fetch = +refs/heads/*:refs/remotes/origin/*`` * Nom de la clef ssh différent de celui attendu * Renommage de la clef privée pour adopter le nom attendu : **id_rsa** ## Migration wiki [Migration page par page](https://gitlab.insee.fr/architecture-applicative/migration/migration-documentation/-/blob/master/migration_wiki_page_par_page.md) <br/> [Migration wiki complet](https://gitlab.insee.fr/architecture-applicative/migration/migration-documentation/-/blob/master/migration_wiki_complet_utilisateurs_avertis.md)<br/> On a suivi la procédure de migration du wiki complet pour les projets RSA et BRPP. Le principe est d'exporter le wiki Gforge dans un fichier xml, puis d'utiliser un outil de conversion dockerisé. Enfin d'importer les pages au format md dans Gitlab. - Mediawiki permet d'exporter un ensemble de page dans un fichier xml. - Il est possible de le convertir en plusieurs fichiers au format markdown (un par page du wiki) en utilisant un outil communautaire qui a été dockerisé. - Pour utiliser cet outil dockerisé, on peut profiter du service Ubuntu offert par la plateforme inno, [Onyxia](https://onyxia.beta.innovation.insee.eu/accueil). - Ayant exporter la liste des pages mediawiki directement depuis notre ordi, nous avons du utiliser _Minio_ pour transférer ce fichier à la VM Ubuntu précédemment lancée > Il était possible de récupérer cette liste de pages directement depuis la VM pour s'éviter un transfert laborieux Difficultés * Créer un service Ubuntu à cette nouvelle adresse : [Ubuntu Service](https://portail.innovation.insee.eu/my-lab/catalogue) (l'ancienne sur la doc ne fonctionne plus) * Utilisation du [service Minio](https://minio.stable.innovation.insee.eu/minio/login) -> pas les droits admin... => Passage par l'option [Mes fichiers ("bucket")](https://portail.innovation.insee.eu/mes-fichiers) d'Onyxia * Passer le presse papier de Windows vers le Linux Dockerisé * Il existe un outil dans le service Ubuntu (barre d'outil à gauche) Un presse papier permet de faire des allers-retours entre la machine sous Windows et la VM Ubuntu. * Certaines pages ne sont pas converties en Markdown par l'outil dockerisé * La hiérarchie des pages disparait * Certains tableaux ne sont pas reproduit correctement * Les fichiers (pièces-jointes, images...) ne sont pas récupérés.