Skip to main content

이 버전의 GitHub Enterprise는 다음 날짜에 중단되었습니다. 2024-03-26. 중요한 보안 문제에 대해서도 패치 릴리스가 이루어지지 않습니다. 더 뛰어난 성능, 향상된 보안, 새로운 기능을 위해 최신 버전의 GitHub Enterprise Server로 업그레이드합니다. 업그레이드에 대한 도움말은 GitHub Enterprise 지원에 문의하세요.

Mercurial 리포지토리 가져오기

리포지토리를 Git으로 변환한 다음 Git 리포지토리를 GitHub Enterprise Server(으)로 푸시하여 Mercurial에서 리포지토리를 가져올 수 있습니다.

필수 조건

이러한 단계를 따르려면 macOS 또는 Linux 시스템을 사용하고 다음 도구를 설치해야 합니다.

Mercurial 리포지토리 가져오기

  1. GitHub Enterprise Server 인스턴스에서 새 리포지토리를 만듭니다. 오류를 방지하려면 새 리포지토리를 ‘추가 정보’, 라이선스 또는 gitignore 파일로 초기화하지 마세요. 프로젝트가 GitHub Enterprise Server에 푸시된 후 이러한 파일을 추가할 수 있습니다. 자세한 내용은 "새 리포지토리 만들기"을 참조하세요.

  2. Mercurial이 컴퓨터에 설치되어 있는지 확인하려면 hg --version을(를) 실행하세요.

    출력은 Mercurial Distributed SCM (version 6.4)와(과) 비슷해야 합니다.

  3. 컴퓨터에 Git이 설치되어 있는지 확인하려면 git --version.을 실행합니다.

    출력은 git version 2.40.0과 비슷해야 합니다.

  4. Git LFS이(가) 컴퓨터에 설치되어 있는지 확인하려면 git lfs --version을 실행합니다.

    출력은 git-lfs/3.1.4 (GitHub; darwin arm64; go 1.18.1)과 비슷해야 합니다.

  5. pip이(가) 컴퓨터에 설치되어 있는지 확인하려면 pip --version을(를) 실행하세요.

    출력은 pip 21.2.4와(과) 비슷해야 합니다.

  6. mercurial Python 패키지를 설치하려면 pip install mercurial을(를) 실행하세요.

  7. 컴퓨터에 대한 빠른 내보내기의 최신 릴리스를 다운로드한 다음, 보관 파일을 추출합니다.

  8. 추출된 디렉터리로 이동한 다음 ./hg-fast-export.sh --help을(를) 실행합니다.

    출력은 usage: hg-fast-export.sh(으)로 시작해야 합니다.

  9. Mercurial 리포지토리를 복제합니다.

    예를 들어 Mercurial 자체의 소스 코드를 mercurial-repo 디렉터리에 복제하려면 hg clone https://www.mercurial-scm.org/repo/hg mercurial-repo을(를) 실행합니다.

  10. 새 디렉터리를 만들고, 새 디렉터리로 이동한 다음, 새 Git 리포지토리를 초기화합니다.

    예를 들어 새 리포지토리 mercurial-git의 이름을 지정하려면 mkdir mercurial-git && cd mercurial-git && git init을(를) 실행합니다.

  11. 새로 만든 Git 리포지토리의 디렉터리로 이동합니다.

  12. Mercurial과 동일한 방식으로 파일 이름의 대/소문자를 처리하도록 새 Git 리포지토리를 구성하려면 git config core.ignoreCase false을(를) 실행합니다.

  13. Mercurial 프로젝트에서 커밋자 목록을 가져와 목록을 committers.txt에 저장하려면 다음 스크립트를 실행합니다.

    Shell
    hg log --template "{author}\n" | sort | uniq > committers.txt
    
  14. committers.txt 파일을 업데이트하고 Mercurial 리포지토리에 사용된 커밋자 이름을 Git 리포지토리에서 사용하려는 이름에 다음 형식을 사용하여 매핑합니다.

    “The Octocat <octocato@gmail.com>”=”Octocat <octocat@github.com>”
    
  15. 초기화된 Git 리포지토리에서 hg-fast-export.sh을(를) 실행하여 Mercurial 리포지토리로의 경로와 committers.txt 파일로의 경로를 인수로 전달합니다.

    예들 들어 ../fast-export-221024/hg-fast-export.sh -r ../mercurial-repo -A ../mercurial-repo/committers.txt -M main입니다.

  16. 가져오기가 종료되면 새로 만든 Git 리포지토리를 확인하기 위해 git checkout HEAD을(를) 실행합니다.

  17. GitHub 리포지토리를 원격 실행 git remote add origin URL로 추가하려면 먼저 만든 GitHub 리포지토리의 URL을 URL에서 https://github.com/octocat/example-repository.git 등으로 바꿔서 실행 합니다.

  18. 리포지토리를 GitHub로 푸시하려면 git push --mirror origin을 실행합니다.

    리포지토리에 GitHub Enterprise Server의 파일 크기 제한보다 큰 파일이 포함되어 있으면 푸시가 실패할 수 있습니다. git lfs import을 실행하여 대용량 파일을 Git LFS으로 이동한 다음 다시 시도하세요.