Skip to main content

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

Subversion 리포지토리 가져오기

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

필수 조건

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

Subversion 리포지토리 가져오기

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

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

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

  3. 컴퓨터에서 git svn을(를) 사용할 수 있는지 확인하려면 git svn --version을(를) 실행하세요.

    출력은 git-svn version 2.40.0 (svn 1.14.2)와(과) 비슷해야 합니다.

    git을(를) 성공적으로 실행할 수 있지만 git svn을(를) 실행할 때 오류가 발생하는 경우 별도로 git svn을(를) 설치해야 할 수 있습니다. git-svn 패키지지가 포함된 Homebrew 또는 Ubuntu 패키지를 사용할 것을 권장합니다.

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

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

  5. Subversion 리포지토리를 확인하세요.

    예를 들어 Sourceforge에서 Logisim 오픈 소스 프로젝트를 확인하려면 svn checkout https://svn.code.sf.net/p/circuit/code/trunk을(를) 실행합니다.

  6. Subversion 리포지토리의 디렉터리로 이동합니다.

  7. Subversion 프로젝트에서 작성자 목록을 가져와 authors.txt의 목록을 저장하려면 다음 스크립트를 실행하세요.

    Shell
    svn log -q | grep -e '^r' | awk 'BEGIN { FS = "|" } ; { print $2" = "$2 }' | sed 's/^[ \t]*//' | sort | uniq > authors.txt
    
  8. authors.txt 파일을 업데이트하여 Subversion 리포지토리에 사용된 작성자 이름을 다음 형식을 사용하여 Git 리포지토리에서 사용하려는 이름으로 매핑합니다.

    octocat = The Octocat <octocat@github.com>
    
  9. Git 리포지토리에 Subversion 리포지토리를 변환하려면 git svn을(를) 사용하세요.

    • Subversion 리포지토리에 "트렁크", "분기" 및 "태그" 폴더가 포함된 표준 형식이 있는 경우 git svn clone -s URL PATH/TO/DESTINATION --authors-file PATH/TO/AUTHORS.TXT을(를) 실행하고, URL을(를) Subversion 리포지토리의 URL로, PATH/TO/DESTINATION을(를) 리포지토리를 복제하려는 디렉터리의 경로로, PATH/TO/AUTHORS.TXT을(를) authors.txt 파일에 대한 경로로 바꿔 실행합니다.

      예를 들어 Sourceforge의 Logisim 프로젝트를 logisim이라는 디렉터리에 복제하려면 git svn clone -s https://svn.code.sf.net/p/circuit/code logisim --authors-file path/to/authors.txt을(를) 실행합니다.

    • Subversion 리포지토리가 비표준인 경우 git svn이(가) 리포지토리를 처리하도록 사용자 지정할 수 있습니다. 자세한 내용은 Git 설명서의 git-svn을 참조하세요.

  10. Git은 각 SVN 수정 버전을 검사하고 수정 버전을 Git 커밋으로 전환합니다. 리포지토리에 많은 파일 또는 많은 기록이 있는 경우 이 프로세스는 시간이 오래 걸릴 수 있습니다.

    큰 리포지토리의 경우 명령이 중지될 수 있습니다. 이 경우 Ctrl+C를 사용하여 명령을 종료하고 새 디렉터리로 이동한 다음 git svn fetch을(를) 실행하여 종료된 위치를 시작할 수 있습니다.

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

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

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

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