Skip to main content

Cette version de GitHub Enterprise Server n'est plus disponible depuis le 2024-07-09. Aucune publication de correctifs n’est effectuée, même pour les problèmes de sécurité critiques. Pour de meilleures performances, une sécurité améliorée et de nouvelles fonctionnalités, effectuez une mise à niveau vers la dernière version de GitHub Enterprise. Pour obtenir de l’aide sur la mise à niveau, contactez le support GitHub Enterprise.

Importation à partir d’autres systèmes de gestion de versions avec l’interpréteur de commandes d’administration

À l’aide de l’interpréteur de commandes d’administration, vous pouvez importer à partir de Subversion, Mercurial et Team Foundation Version Control dans des dépôts Git sur GitHub Enterprise Server.

Qui peut utiliser cette fonctionnalité ?

Site administrators can use the administrative shell to import data from other version control systems.

Importation de projets à partir de Mercurial

  1. Connexion SSH à votre instance GitHub Enterprise Server. Si votre instance comprend plusieurs nœuds, par exemple si la haute disponibilité ou la géoréplication sont configurées, connectez-vous via SSH au nœud principal. Si vous utilisez un cluster, vous pouvez vous connecter via SSH à n’importe quel nœud. Remplacez HOSTNAME par le nom d’hôte de votre instance, le nom d’hôte ou l’adresse IP d’un nœud. Pour plus d’informations, consultez « Accès à l’interpréteur de commandes d’administration (SSH) ».

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. Créez un clone brut du projet à l’aide de la commande ci-dessous, en spécifiant l’URL du projet source et un chemin d’accès à un référentiel temporaire :

    $ git-import-hg-raw HG-CLONE-URL/PATH/REPO-NAME.git
    # Creates a new repository with one or more Git refs in "refs/import/" in the specified path.
    
  3. Passez en revue le fichier CSV (séparé par des virgules) dans /PATH/REPO-NAME.git/git-import/raw-authors.csv. Il doit contenir ces colonnes :

    • ID : l’auteur tel qu’il est stocké dans le référentiel d’origine, suivi d’un identificateur unique
    • NAME : l’auteur tel qu’il est stocké dans le référentiel d’origine

    Pour associer les auteurs du référentiel d’origine à une adresse e-mail et à un nom, créez un nouveau fichier CSV avec les colonnes ID,(ignored),GIT_EMAIL,GIT_NAME. Vous pouvez utiliser ce fichier CSV pour remplacer les informations sur l'auteur pour tout ce qui est « ID : par « GIT_EMAIL » et « GIT_NAME ».

    Par exemple, si vous souhaitez faire correspondre l'ID de l'auteur d’origine de octocat@111111-2222-3333-4444-55555555555 à un nouvel utilisateur ayant l'adresse e-mail de octocat@github.com et le nom de The Octocat, le fichier CSV doit contenir la ligne suivante :

    octocat@111111-2222-3333-4444-55555555555, ,octocat@github.com,The Octocat

  4. Réécrivez les auteurs et les branches à l’aide du fichier CSV :

    git-import-rewrite --flavor hg --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git
    
  5. Si vous ne l’avez pas encore fait, créez un référentiel vide sur GitHub Enterprise Server.

  6. Remplacez le répertoire de travail actuel par votre dépôt local.

  7. Envoyez le référentiel importé vers GitHub Enterprise Server :

    git push --mirror PUSH-URL-ON-GITHUB-ENTERPRISE
    

Importation de projets à partir de Subversion

  1. Connexion SSH à votre instance GitHub Enterprise Server. Si votre instance comprend plusieurs nœuds, par exemple si la haute disponibilité ou la géoréplication sont configurées, connectez-vous via SSH au nœud principal. Si vous utilisez un cluster, vous pouvez vous connecter via SSH à n’importe quel nœud. Remplacez HOSTNAME par le nom d’hôte de votre instance, le nom d’hôte ou l’adresse IP d’un nœud. Pour plus d’informations, consultez « Accès à l’interpréteur de commandes d’administration (SSH) ».

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. Créez un clone brut du projet à l’aide de la commande ci-dessous, en spécifiant l’URL du projet source et un chemin d’accès à un référentiel temporaire :

    $ git-import-svn-raw SVN-CLONE-URL /PATH/REPO-NAME.git
    # Creates a new repository with one or more Git refs in "refs/import/" in the specified path.
    
  3. Passez en revue le fichier CSV (séparé par des virgules) dans /PATH/REPO-NAME.git/git-import/raw-authors.csv. Il doit contenir ces colonnes :

    • ID : l’auteur tel qu’il est stocké dans le référentiel d’origine, suivi d’un identificateur unique
    • NAME : l’auteur tel qu’il est stocké dans le référentiel d’origine

    Pour associer les auteurs du référentiel d’origine à une adresse e-mail et à un nom, créez un nouveau fichier CSV avec les colonnes ID,(ignored),GIT_EMAIL,GIT_NAME. Vous pouvez utiliser ce fichier CSV pour remplacer les informations sur l'auteur pour tout ce qui est « ID : par « GIT_EMAIL » et « GIT_NAME ».

    Par exemple, si vous souhaitez faire correspondre l'ID de l'auteur d’origine de octocat@111111-2222-3333-4444-55555555555 à un nouvel utilisateur ayant l'adresse e-mail de octocat@github.com et le nom de The Octocat, le fichier CSV doit contenir la ligne suivante :

    octocat@111111-2222-3333-4444-55555555555, ,octocat@github.com,The Octocat

  4. Réécrivez les auteurs et les branches à l’aide du fichier CSV :

    git-import-rewrite --flavor svn --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git
    
  5. Si vous ne l’avez pas encore fait, créez un référentiel vide sur GitHub Enterprise Server.

  6. Remplacez le répertoire de travail actuel par votre dépôt local.

  7. Envoyez le référentiel importé vers GitHub Enterprise Server :

    git push --mirror PUSH-URL-ON-GITHUB-ENTERPRISE
    

Importation de projets à partir de Team Foundation Version Control

  1. Connexion SSH à votre instance GitHub Enterprise Server. Si votre instance comprend plusieurs nœuds, par exemple si la haute disponibilité ou la géoréplication sont configurées, connectez-vous via SSH au nœud principal. Si vous utilisez un cluster, vous pouvez vous connecter via SSH à n’importe quel nœud. Remplacez HOSTNAME par le nom d’hôte de votre instance, le nom d’hôte ou l’adresse IP d’un nœud. Pour plus d’informations, consultez « Accès à l’interpréteur de commandes d’administration (SSH) ».

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. Créez un clone brut du projet à l’aide de la commande ci-dessous, en spécifiant l’URL du projet source et un chemin d’accès à un référentiel temporaire :

    $ git-import-tfs-raw TEAM-FOUNDATION-CLONE-URL /PATH/REPO-NAME.git
    # Creates a new repository with one or more Git refs in "refs/import/" in the specified path.
    
  3. Passez en revue le fichier CSV (séparé par des virgules) dans /PATH/REPO-NAME.git/git-import/raw-authors.csv. Il doit contenir ces colonnes :

    • ID : l’auteur tel qu’il est stocké dans le référentiel d’origine, suivi d’un identificateur unique
    • NAME : l’auteur tel qu’il est stocké dans le référentiel d’origine

    Pour associer les auteurs du référentiel d’origine à une adresse e-mail et à un nom, créez un nouveau fichier CSV avec les colonnes ID,(ignored),GIT_EMAIL,GIT_NAME. Vous pouvez utiliser ce fichier CSV pour remplacer les informations sur l'auteur pour tout ce qui est « ID : par « GIT_EMAIL » et « GIT_NAME ».

    Par exemple, si vous souhaitez faire correspondre l'ID de l'auteur d’origine de octocat@111111-2222-3333-4444-55555555555 à un nouvel utilisateur ayant l'adresse e-mail de octocat@github.com et le nom de The Octocat, le fichier CSV doit contenir la ligne suivante :

    octocat@111111-2222-3333-4444-55555555555, ,octocat@github.com,The Octocat

  4. Réécrivez les auteurs et les branches à l’aide du fichier CSV :

    git-import-rewrite --flavor tfs --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO_NAME.git
    
  5. Si vous ne l’avez pas encore fait, créez un référentiel vide sur GitHub Enterprise Server.

  6. Remplacez le répertoire de travail actuel par votre dépôt local.

  7. Envoyez le référentiel importé vers GitHub Enterprise Server :

    git push --mirror PUSH-URL-ON-GITHUB-ENTERPRISE
    

Pour aller plus loin