필수 조건
이러한 단계를 따르려면 macOS 또는 Linux 시스템을 사용하고 다음 도구를 설치해야 합니다.
- Subversion
- Git(
git-svn
포함) - Git 대용량 파일 스토리지 (Git LFS)("Git 대형 파일 스토리지 설치" 참조)
Subversion 리포지토리 가져오기
-
GitHub에 새 리포지토리를 만듭니다. 오류를 방지하려면 새 리포지토리를 ‘추가 정보’, 라이선스 또는 gitignore 파일로 초기화하지 마세요. 프로젝트가 GitHub에 푸시된 후 이러한 파일을 추가할 수 있습니다. 자세한 내용은 "새 리포지토리 만들기" 항목을 참조하세요.
-
컴퓨터에 Git이 설치되어 있는지 확인하려면
git --version.
을 실행합니다.출력은
git version 2.40.0
과 비슷해야 합니다. -
컴퓨터에서
git svn
을(를) 사용할 수 있는지 확인하려면git svn --version
을(를) 실행하세요.출력은
git-svn version 2.40.0 (svn 1.14.2)
와(과) 비슷해야 합니다.git
을(를) 성공적으로 실행할 수 있지만git svn
을(를) 실행할 때 오류가 발생하는 경우 별도로git svn
을(를) 설치해야 할 수 있습니다.git-svn
패키지지가 포함된 Homebrew 또는 Ubuntu 패키지를 사용할 것을 권장합니다. -
Git LFS이(가) 컴퓨터에 설치되어 있는지 확인하려면
git lfs --version
을 실행합니다.출력은
git-lfs/3.1.4 (GitHub; darwin arm64; go 1.18.1)
과 비슷해야 합니다. -
Subversion 리포지토리를 확인하세요.
예를 들어 Sourceforge에서 Logisim 오픈 소스 프로젝트를 확인하려면
svn checkout https://svn.code.sf.net/p/circuit/code/trunk
을(를) 실행합니다. -
Subversion 리포지토리의 디렉터리로 이동합니다.
-
Subversion 프로젝트에서 작성자 목록을 가져와
authors.txt
의 목록을 저장하려면 다음 스크립트를 실행하세요.Shell svn log -q | grep -e '^r' | awk 'BEGIN { FS = "|" } ; { print $2" = "$2 }' | sed 's/^[ \t]*//' | sort | uniq > authors.txt
svn log -q | grep -e '^r' | awk 'BEGIN { FS = "|" } ; { print $2" = "$2 }' | sed 's/^[ \t]*//' | sort | uniq > authors.txt
-
authors.txt
파일을 업데이트하여 Subversion 리포지토리에 사용된 작성자 이름을 다음 형식을 사용하여 Git 리포지토리에서 사용하려는 이름으로 매핑합니다.octocat = The Octocat <octocat@github.com>
-
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을 참조하세요.
-
-
Git은 각 SVN 수정 버전을 검사하고 수정 버전을 Git 커밋으로 전환합니다. 리포지토리에 많은 파일 또는 많은 기록이 있는 경우 이 프로세스는 시간이 오래 걸릴 수 있습니다.
큰 리포지토리의 경우 명령이 중지될 수 있습니다. 이 경우 Ctrl+C를 사용하여 명령을 종료하고 새 디렉터리로 이동한 다음
git svn fetch
을(를) 실행하여 종료된 위치를 시작할 수 있습니다. -
새로 만든 Git 리포지토리의 디렉터리로 이동합니다.
-
GitHub 리포지토리를 원격 실행
git remote add origin URL
로 추가하려면 먼저 만든 GitHub 리포지토리의 URL을URL
에서https://github.com/octocat/example-repository.git
등으로 바꿔서 실행 합니다. -
리포지토리를 GitHub로 푸시하려면
git push --mirror origin
을 실행합니다.리포지토리에 GitHub의 파일 크기 제한보다 큰 파일이 포함되어 있으면 푸시가 실패할 수 있습니다.
git lfs import
을 실행하여 대용량 파일을 Git LFS으로 이동한 다음 다시 시도하세요.