Skip to main content

Subversion 리포지토리 가져오기

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

필수 조건

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

Subversion 리포지토리 가져오기

  1. GitHub에 새 리포지토리를 만듭니다. 오류를 방지하려면 새 리포지토리를 ‘추가 정보’, 라이선스 또는 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으로 이동한 다음 다시 시도하세요.