Skip to main content

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. 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. 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. Envoyez le référentiel importé vers GitHub Enterprise Server :

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

Pour aller plus loin

  •         [AUTOTITLE](/admin/configuration/configuring-your-enterprise/command-line-utilities#import-and-export)