---
# System prepended metadata

title: Migration du wiki de gforge à gitlab

---

# 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.