Skip to main content

Mercurial 리포지토리 가져오기

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

필수 조건

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

  •         [Mercurial](https://www.mercurial-scm.org)
    
  •         [Git](https://git-scm.com/downloads)
    
  • Git 대용량 파일 스토리지(Git LFS)(Git 대형 파일 스토리지 설치 참조)
  •         [Python](https://www.python.org)에는 `pip` 패키지 관리자가 포함되어 있습니다.
    

Mercurial 리포지토리 가져오기

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

  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을(를) 실행합니다. 원격 저장소로 GitHub 저장소 추가하기 GitHub로 푸시하기

추가 참고 자료

  •         [AUTOTITLE](/get-started/using-git/troubleshooting-the-2-gb-push-limit)