Skip to main content

Importieren aus anderen Versionskontrollsystemen mit der Verwaltungsshell

Mit der Verwaltungsshell kannst du Elemente aus Subversion, Mercurial und der Team Foundation-Versionskontrolle in Git-Repositorys in GitHub Enterprise Server importieren.

Wer kann dieses Feature verwenden?

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

Projekte aus Mercurial importieren

  1. Melde dich über SSH bei Ihre GitHub Enterprise Server-Instance an. Wenn deine Instanz mehrere Knoten umfasst, wenn z. B. Hochverfügbarkeit oder Georeplikation konfiguriert ist, wird SSH im primären Knoten konfiguriert. Wenn du einen Cluster verwendest, kannst du SSH in einen beliebigen Knoten einfügen. Ersetzen Sie HOSTNAME durch den Hostnamen Ihrer Instanz bzw. durch den Hostnamen oder die IP-Adresse eines Knotens. Weitere Informationen findest du unter Auf die Verwaltungsshell (SSH) zugreifen.

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. Erstelle einen Klon im Rohdatenformat des Projekts. Führe dazu den folgenden Befehl aus. Gib dazu die URL des Quellprojekts und einen Pfad zum temporären Repository an:

    $ 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. Überprüfe die CSV-Datei in /PATH/REPO-NAME.git/git-import/raw-authors.csv. Sie sollte die folgenden Spalten enthalten:

    • ID: der im ursprünglichen Repository gespeicherte Autor, gefolgt von einem eindeutigen Kennzeichner
    • NAME: der im ursprünglichen Repository gespeicherte Autor

    Um Autoren aus dem ursprünglichen Repository einer E-Mail-Adresse und einem Namen zuzuordnen, erstellen Sie eine neue CSV-Datei mit den Spalten ID,(ignored),GIT_EMAIL,GIT_NAME. Anhand dieser CSV-Datei können Sie die Autoreninformationen für alles durch „ID“ mit „GIT_EMAIL“ und „GIT_NAME“ ersetzen.

    Wenn Sie beispielsweise die ursprüngliche Autoren-ID von octocat@111111-2222-3333-4444-55555555555 einem neuen Benutzer mit der E-Mail-Adresse von octocat@github.com und dem Namen von The Octocat zuordnen möchten, sollte die CSV-Datei die folgende Zeile enthalten:

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

  4. Schreibt die Autoren und Branches mit der CSV-Datei um:

    git-import-rewrite --flavor hg --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git
    
  5. Wenn dies noch nicht erfolgt ist, erstelle ein neues leeres Repository auf GitHub Enterprise Server.

  6. Ändere das aktuelle Arbeitsverzeichnis in Dein lokales Repository.

  7. Übertrage das importierte Repository per Push-Vorgang an GitHub Enterprise Server:

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

Projekte aus Subversion importieren

  1. Melde dich über SSH bei Ihre GitHub Enterprise Server-Instance an. Wenn deine Instanz mehrere Knoten umfasst, wenn z. B. Hochverfügbarkeit oder Georeplikation konfiguriert ist, wird SSH im primären Knoten konfiguriert. Wenn du einen Cluster verwendest, kannst du SSH in einen beliebigen Knoten einfügen. Ersetzen Sie HOSTNAME durch den Hostnamen Ihrer Instanz bzw. durch den Hostnamen oder die IP-Adresse eines Knotens. Weitere Informationen findest du unter Auf die Verwaltungsshell (SSH) zugreifen.

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. Erstelle einen Klon im Rohdatenformat des Projekts. Führe dazu den folgenden Befehl aus. Gib dazu die URL des Quellprojekts und einen Pfad zum temporären Repository an:

    $ 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. Überprüfe die CSV-Datei in /PATH/REPO-NAME.git/git-import/raw-authors.csv. Sie sollte die folgenden Spalten enthalten:

    • ID: der im ursprünglichen Repository gespeicherte Autor, gefolgt von einem eindeutigen Kennzeichner
    • NAME: der im ursprünglichen Repository gespeicherte Autor

    Um Autoren aus dem ursprünglichen Repository einer E-Mail-Adresse und einem Namen zuzuordnen, erstellen Sie eine neue CSV-Datei mit den Spalten ID,(ignored),GIT_EMAIL,GIT_NAME. Anhand dieser CSV-Datei können Sie die Autoreninformationen für alles durch „ID“ mit „GIT_EMAIL“ und „GIT_NAME“ ersetzen.

    Wenn Sie beispielsweise die ursprüngliche Autoren-ID von octocat@111111-2222-3333-4444-55555555555 einem neuen Benutzer mit der E-Mail-Adresse von octocat@github.com und dem Namen von The Octocat zuordnen möchten, sollte die CSV-Datei die folgende Zeile enthalten:

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

  4. Schreibt die Autoren und Branches mit der CSV-Datei um:

    git-import-rewrite --flavor svn --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git
    
  5. Wenn dies noch nicht erfolgt ist, erstelle ein neues leeres Repository auf GitHub Enterprise Server.

  6. Ändere das aktuelle Arbeitsverzeichnis in Dein lokales Repository.

  7. Übertrage das importierte Repository per Push-Vorgang an GitHub Enterprise Server:

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

Projekte aus der Team Foundation-Versionskontrolle importieren

  1. Melde dich über SSH bei Ihre GitHub Enterprise Server-Instance an. Wenn deine Instanz mehrere Knoten umfasst, wenn z. B. Hochverfügbarkeit oder Georeplikation konfiguriert ist, wird SSH im primären Knoten konfiguriert. Wenn du einen Cluster verwendest, kannst du SSH in einen beliebigen Knoten einfügen. Ersetzen Sie HOSTNAME durch den Hostnamen Ihrer Instanz bzw. durch den Hostnamen oder die IP-Adresse eines Knotens. Weitere Informationen findest du unter Auf die Verwaltungsshell (SSH) zugreifen.

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. Erstelle einen Klon im Rohdatenformat des Projekts. Führe dazu den folgenden Befehl aus. Gib dazu die URL des Quellprojekts und einen Pfad zum temporären Repository an:

    $ 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. Überprüfe die CSV-Datei in /PATH/REPO-NAME.git/git-import/raw-authors.csv. Sie sollte die folgenden Spalten enthalten:

    • ID: der im ursprünglichen Repository gespeicherte Autor, gefolgt von einem eindeutigen Kennzeichner
    • NAME: der im ursprünglichen Repository gespeicherte Autor

    Um Autoren aus dem ursprünglichen Repository einer E-Mail-Adresse und einem Namen zuzuordnen, erstellen Sie eine neue CSV-Datei mit den Spalten ID,(ignored),GIT_EMAIL,GIT_NAME. Anhand dieser CSV-Datei können Sie die Autoreninformationen für alles durch „ID“ mit „GIT_EMAIL“ und „GIT_NAME“ ersetzen.

    Wenn Sie beispielsweise die ursprüngliche Autoren-ID von octocat@111111-2222-3333-4444-55555555555 einem neuen Benutzer mit der E-Mail-Adresse von octocat@github.com und dem Namen von The Octocat zuordnen möchten, sollte die CSV-Datei die folgende Zeile enthalten:

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

  4. Schreibt die Autoren und Branches mit der CSV-Datei um:

    git-import-rewrite --flavor tfs --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO_NAME.git
    
  5. Wenn dies noch nicht erfolgt ist, erstelle ein neues leeres Repository auf GitHub Enterprise Server.

  6. Ändere das aktuelle Arbeitsverzeichnis in Dein lokales Repository.

  7. Übertrage das importierte Repository per Push-Vorgang an GitHub Enterprise Server:

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

Weiterführende Themen