Skip to main content

Importation d’un dépôt Mercurial

Vous pouvez importer un dépôt de Mercurial en le convertissant en dépôt Git, puis en poussant le dépôt Git vers GitHub Enterprise Server.

Prérequis

Pour suivre ces étapes, vous devez utiliser un système macOS ou Linux et avoir les outils suivants installés :

Importation d’un dépôt Mercurial

  1. Créez un référentiel dans GitHub. Pour éviter les erreurs, n’initialisez pas le nouveau dépôt avec le fichier README, la licence ou les fichiers gitignore. Vous pouvez ajouter ces fichiers une fois que votre projet a été poussé vers GitHub Enterprise Server. Pour plus d’informations, consultez « Création d’un dépôt ».

  2. Pour vérifier que Mercurial est installé sur votre ordinateur, exécutez hg --version

    La sortie devrait ressembler à Mercurial Distributed SCM (version 6.4).

  3. Pour vérifier que Git est installé sur votre ordinateur, exécutez git --version.

    La sortie devrait ressembler à git version 2.40.0.

  4. Pour vérifier que Git LFS est installé sur votre ordinateur, exécutez git lfs --version.

    La sortie devrait ressembler à git-lfs/3.1.4 (GitHub; darwin arm64; go 1.18.1).

  5. Pour vérifier que pip est installé sur votre ordinateur, exécutez pip --version.

    La sortie devrait ressembler à pip 21.2.4.

  6. Pour installer le package mercurial Python, exécutez pip install mercurial.

  7. Téléchargez la dernière version de fast-export sur votre ordinateur, puis extrayez l’archive.

  8. Accédez au répertoire extrait, puis exécutez ./hg-fast-export.sh --help.

    La sortie devrait commencer par usage: hg-fast-export.sh.

  9. Clonez votre dépôt Mercurial.

    Par exemple, pour cloner le code source de Mercurial lui-même dans le répertoire mercurial-repo, exécutez hg clone https://www.mercurial-scm.org/repo/hg mercurial-repo.

  10. Créez un répertoire, accédez-y, puis initialisez un nouveau dépôt Git.

    Par exemple, si vous souhaitez nommer votre nouveau dépôt mercurial-git, exécutez mkdir mercurial-git && cd mercurial-git && git init.

  11. Accédez au répertoire du dépôt Git nouvellement créé.

  12. Pour configurer votre nouveau dépôt Git afin de gérer le cas des noms de fichiers de la même façon que Mercurial, exécutez git config core.ignoreCase false.

  13. Pour obtenir la liste des commiteurs dans votre projet Mercurial et stocker la liste dans committers.txt, exécutez le script suivant.

    Shell
    hg log --template "{author}\n" | sort | uniq > committers.txt
    
  14. Mettez à jour votre fichier committers.txt, en mappant le nom du commiteur utilisé dans le dépôt Mercurial au nom que vous souhaitez utiliser dans votre dépôt Git, au format suivant :

    “The Octocat <octocato@gmail.com>”=”Octocat <octocat@github.com>”
    
  15. Dans votre dépôt Git initialisé, exécutez hg-fast-export.sh, en passant le chemin de votre dépôt Mercurial et le chemin de votre fichier committers.txt en tant qu’arguments.

    Par exemple : ../fast-export-221024/hg-fast-export.sh -r ../mercurial-repo -A ../mercurial-repo/committers.txt -M main.

  16. Une fois l’importation terminée, pour vérifier votre dépôt Git nouvellement créé, exécutez git checkout HEAD.

  17. Pour ajouter votre dépôt GitHub en tant que dépôt distant, exécutez git remote add origin URL, en remplaçant URL par l’URL du dépôt GitHub que vous avez créée précédemment, par exemple https://github.com/octocat/example-repository.git.

  18. Pour envoyer le dépôt sur GitHub, exécutez git push --mirror origin.

    Si votre dépôt contient des fichiers dont la taille est supérieure à la limite de taille de fichier de GitHub Enterprise Server, votre poussée peut échouer. Déplacez les gros fichiers vers Git LFS en exécutant git lfs import, puis réessayez.