Skip to main content

Enterprise Server 3.15 は、現在リリース候補として使用できます。

管理シェルを使用して他のバージョン コントロール システムからインポートする

管理シェルを使うと、Subversion、Mercurial、Team Foundation バージョン管理から GitHub Enterprise Server 上の Git リポジトリにインポートできます。

この機能を使用できるユーザーについて

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

Mercurialからのプロジェクトのインポート

  1. お使いの GitHub Enterprise Server インスタンス に SSH で接続します。 インスタンスが複数のノードで構成されている場合は (高可用性や geo レプリケーションが構成されている場合など)、プライマリ ノードに SSH 接続します。 クラスターを使用する場合は、任意のノードに SSH 接続できます。 HOSTNAME をインスタンスのホスト名、またはノードのホスト名または IP アドレスに置き換えます。 詳しくは、「管理シェル (SSH) にアクセスする」を参照してください。

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. ソースプロジェクトのURLと一時リポジトリへのパスを指定して、以下のコマンドを使ってプロジェクトの生のクローンを作成してください。

    $ 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. /PATH/REPO-NAME.git/git-import/raw-authors.csv でコンマ区切り (CSV) ファイルを確認します。 以下の列が含まれているはずです。

    • ID: 元のリポジトリに格納されている作成者、その後に一意識別子が続きます
    • NAME: 元のリポジトリに格納されている作成者

    元のリポジトリの作成者をメール アドレスと名前にマップするには、ID,(ignored),GIT_EMAIL,GIT_NAME 列を含む新しい CSV ファイルを作成します。 この CSV ファイルを使用して、任意の作成者情報の「ID」を、「GIT_EMAIL」と「GIT_NAME」に置き換えることができます。

    たとえば、octocat@111111-2222-3333-4444-55555555555 の元の作成者 ID を電子メール アドレス octocat@github.com と名前 The Octocat を持つ新しいユーザーにマップする場合、CSV ファイルには次の行が含めます。

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

  4. CSV ファイルを使って作者とブランチを書き直します:

    git-import-rewrite --flavor hg --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git
    
  5. GitHub Enterprise Server に新しい空のリポジトリを作成します (まだ作成していない場合)。

  6. ワーキングディレクトリをローカルのリポジトリに変更します。

  7. インポートされたリポジトリを GitHub Enterprise Server にプッシュします。

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

SubVersionからのプロジェクトのインポート

  1. お使いの GitHub Enterprise Server インスタンス に SSH で接続します。 インスタンスが複数のノードで構成されている場合は (高可用性や geo レプリケーションが構成されている場合など)、プライマリ ノードに SSH 接続します。 クラスターを使用する場合は、任意のノードに SSH 接続できます。 HOSTNAME をインスタンスのホスト名、またはノードのホスト名または IP アドレスに置き換えます。 詳しくは、「管理シェル (SSH) にアクセスする」を参照してください。

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. ソースプロジェクトのURLと一時リポジトリへのパスを指定して、以下のコマンドを使ってプロジェクトの生のクローンを作成してください。

    $ 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. /PATH/REPO-NAME.git/git-import/raw-authors.csv でコンマ区切り (CSV) ファイルを確認します。 以下の列が含まれているはずです。

    • ID: 元のリポジトリに格納されている作成者、その後に一意識別子が続きます
    • NAME: 元のリポジトリに格納されている作成者

    元のリポジトリの作成者をメール アドレスと名前にマップするには、ID,(ignored),GIT_EMAIL,GIT_NAME 列を含む新しい CSV ファイルを作成します。 この CSV ファイルを使用して、任意の作成者情報の「ID」を、「GIT_EMAIL」と「GIT_NAME」に置き換えることができます。

    たとえば、octocat@111111-2222-3333-4444-55555555555 の元の作成者 ID を電子メール アドレス octocat@github.com と名前 The Octocat を持つ新しいユーザーにマップする場合、CSV ファイルには次の行が含めます。

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

  4. CSV ファイルを使って作者とブランチを書き直します:

    git-import-rewrite --flavor svn --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git
    
  5. GitHub Enterprise Server に新しい空のリポジトリを作成します (まだ作成していない場合)。

  6. ワーキングディレクトリをローカルのリポジトリに変更します。

  7. インポートされたリポジトリを GitHub Enterprise Server にプッシュします。

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

Team Foundation Version Controlからのプロジェクトのインポート

  1. お使いの GitHub Enterprise Server インスタンス に SSH で接続します。 インスタンスが複数のノードで構成されている場合は (高可用性や geo レプリケーションが構成されている場合など)、プライマリ ノードに SSH 接続します。 クラスターを使用する場合は、任意のノードに SSH 接続できます。 HOSTNAME をインスタンスのホスト名、またはノードのホスト名または IP アドレスに置き換えます。 詳しくは、「管理シェル (SSH) にアクセスする」を参照してください。

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. ソースプロジェクトのURLと一時リポジトリへのパスを指定して、以下のコマンドを使ってプロジェクトの生のクローンを作成してください。

    $ 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. /PATH/REPO-NAME.git/git-import/raw-authors.csv でコンマ区切り (CSV) ファイルを確認します。 以下の列が含まれているはずです。

    • ID: 元のリポジトリに格納されている作成者、その後に一意識別子が続きます
    • NAME: 元のリポジトリに格納されている作成者

    元のリポジトリの作成者をメール アドレスと名前にマップするには、ID,(ignored),GIT_EMAIL,GIT_NAME 列を含む新しい CSV ファイルを作成します。 この CSV ファイルを使用して、任意の作成者情報の「ID」を、「GIT_EMAIL」と「GIT_NAME」に置き換えることができます。

    たとえば、octocat@111111-2222-3333-4444-55555555555 の元の作成者 ID を電子メール アドレス octocat@github.com と名前 The Octocat を持つ新しいユーザーにマップする場合、CSV ファイルには次の行が含めます。

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

  4. CSV ファイルを使って作者とブランチを書き直します:

    git-import-rewrite --flavor tfs --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO_NAME.git
    
  5. GitHub Enterprise Server に新しい空のリポジトリを作成します (まだ作成していない場合)。

  6. ワーキングディレクトリをローカルのリポジトリに変更します。

  7. インポートされたリポジトリを GitHub Enterprise Server にプッシュします。

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

参考資料