Skip to main content

타사 버전 제어 시스템에서 데이터 가져오기

git-import 도구 모음을 사용하여 Subversion, Mercurial, Team Foundation 버전 제어를 GitHub Enterprise Server의 Git 리포지토리로 가져올 수 있습니다.

Mercurial에서 프로젝트 가져오기

  1. your GitHub Enterprise Server instance에 SSH합니다. 인스턴스가 여러 노드로 구성된 경우(예: 고가용성 또는 지역 복제가 구성된 경우) 주 노드에 대한 SSH를 수행합니다. 클러스터를 사용하는 경우 임의 노드에 대해 SSH를 수행할 수 있습니다. SSH 액세스에 대한 자세한 내용은 “관리 셸(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. your GitHub Enterprise Server instance에 SSH합니다. 인스턴스가 여러 노드로 구성된 경우(예: 고가용성 또는 지역 복제가 구성된 경우) 주 노드에 대한 SSH를 수행합니다. 클러스터를 사용하는 경우 임의 노드에 대해 SSH를 수행할 수 있습니다. SSH 액세스에 대한 자세한 내용은 “관리 셸(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 버전 제어에서 프로젝트 가져오기

  1. your GitHub Enterprise Server instance에 SSH합니다. 인스턴스가 여러 노드로 구성된 경우(예: 고가용성 또는 지역 복제가 구성된 경우) 주 노드에 대한 SSH를 수행합니다. 클러스터를 사용하는 경우 임의 노드에 대해 SSH를 수행할 수 있습니다. SSH 액세스에 대한 자세한 내용은 “관리 셸(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

추가 참고 자료