Skip to main content

サードパーティのバージョン コントロール システムからのデータのインポート

git-import スイートのツールを使用すると、Subversion、Mercurial、Team Foundation Version Control から GitHub Enterprise Server 上の Git リポジトリにインポートできます。

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

  1. SSH into your GitHub Enterprise Server instance. If your instance comprises multiple nodes, for example if high availability or geo-replication are configured, SSH into the primary node. If you use a cluster, you can SSH into any node. For more information about SSH access, see "Accessing the administrative shell (SSH)."

    $ 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 ファイルを作成します。このファイルでは、"ID" による任意の作成者情報が "GIT_EMAIL" と "GIT_NAME" に置き換えられます。

    例:

    • 元の作成者 ID: octocat@111111-2222-3333-4444-55555555555

    • 新しいメール アドレス: octocat@github.com

    • 新しい名前: The Octocat

      オリジナルの作者を新しいGitユーザにマップするには、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. SSH into your GitHub Enterprise Server instance. If your instance comprises multiple nodes, for example if high availability or geo-replication are configured, SSH into the primary node. If you use a cluster, you can SSH into any node. For more information about SSH access, see "Accessing the administrative shell (SSH)."

    $ 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 ファイルを作成します。このファイルでは、"ID" による任意の作成者情報が "GIT_EMAIL" と "GIT_NAME" に置き換えられます。

    例:

    • 元の作成者 ID: octocat@111111-2222-3333-4444-55555555555

    • 新しいメール アドレス: octocat@github.com

    • 新しい名前: The Octocat

      オリジナルの作者を新しいGitユーザにマップするには、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. SSH into your GitHub Enterprise Server instance. If your instance comprises multiple nodes, for example if high availability or geo-replication are configured, SSH into the primary node. If you use a cluster, you can SSH into any node. For more information about SSH access, see "Accessing the administrative shell (SSH)."

    $ 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 ファイルを作成します。このファイルでは、"ID" による任意の作成者情報が "GIT_EMAIL" と "GIT_NAME" に置き換えられます。

    例:

    • 元の作成者 ID: octocat@111111-2222-3333-4444-55555555555

    • 新しいメール アドレス: octocat@github.com

    • 新しい名前: The Octocat

      オリジナルの作者を新しいGitユーザにマップするには、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

参考資料