스택큐힙리스트

어떻게 Subversion 저장소에서 마지막 n개의 수정사항을 git-svn으로 복제하나요? 본문

카테고리 없음

어떻게 Subversion 저장소에서 마지막 n개의 수정사항을 git-svn으로 복제하나요?

스택큐힙리스트 2023. 11. 22. 09:11
반응형

문제


git-svn을 사용하여 얕은 복사본을 만드는 방법은 무엇인가요? 예를 들어, 최근 3개의 리비전만 가져오려면 어떻게 해야 하나요?


git clone 명령어는 옵션 --depth을 사용하면 Git 저장소의 마지막 n개의 리비전을 가져올 수 있습니다. 즉, 저장소의 얕은 복사본을 얻게 됩니다. 예시:


git clone --depth 3 git://some/repo myshallowcopyrepo

git-svn에는 비슷한 옵션이 있는지 알고 싶습니다.


지금까지 찾아본 내용


현재까지는 -rN 옵션만 찾을 수 있었습니다. 여기서 N은 가져올 리비전입니다. 예시:


git svn clone -rN svn://some/repo

문서에 따르면 -r$REVNUMBER:HEAD를 사용할 수 있다고 나와 있습니다. 최근 3개의 리비전을 가져오기 위해 다음과 같이 시도해 봤으나 오류 메시지가 반환되었습니다.

$ git svn clone --prefix=svn/ -s -rHEAD~3:HEAD http://some/svn/repo .
git-svn에서 이해하지 못하는 revision argument: HEAD~3:HEAD

그래서 마지막에서 세 번째 commit의 실제 번호인 534로 HEAD~3을 바꿨습니다. 그것이 작동했지만, 그것은 먼저 마지막에서 세 번째 commit의 revision 번호를 찾아야 한다는 것을 필요로 합니다.


$ git svn clone --prefix=svn/ -s -r534:HEAD http://some/svn/repo .

문서


git-clone


git-svn

답변 1

이미 Git-SVN에서 얕은 복제를 지정하는 가장 간단한 방법을 발견했습니다. 복제를 시작할 SVN 리비전 번호를 지정함으로써 ( -r$REV:HEAD)


예를 들면: git svn clone -s -r1450:HEAD some/svn/repo


Git의 데이터 구조는 포인터를 기반으로 한 방향성이 없는 비순환 그래프(DAG)에 기반하므로, n개의 커밋을 쉽게 거슬러 올라갈 수 있습니다. 하지만 SVN (그리고 따라서 Git-SVN)에서는 리비전 번호를 직접 찾아야 합니다.

답변 2

Git-svn은 Git을 사용하여 Subversion(SVN) 저장소와 상호 작용하는 도구이다. Git-svn을 사용하면 SVN 저장소를 복제하고, Git 저장소에서 작업하며, SVN과 Git 간의 변환을 자유롭게 할 수 있다. 이번 글에서는 Git-svn을 사용하여 SVN 저장소에서 마지막 n개의 리비전을 복제하는 방법을 알아보겠다. Git-svn을 활용하면 SVN의 업데이트 기록을 유지하면서 Git의 여러 이점을 누릴 수 있다.
[제목]
Git-svn을 활용하여 SVN 저장소의 마지막 n개의 리비전 복제하기
[서문]
Git-svn은 Git의 강력함과 유연성을 Subversion 작업과 통합할 수 있는 도구로, 많은 개발자들에게 유용하게 사용되고 있다. 이 글에서는 Git-svn을 활용하여 SVN 저장소에서 마지막 n개의 리비전을 복제하는 방법에 대해 자세히 알아보려고 한다.
[내용]
1. Git-svn 설치
Git-svn을 사용하기 위해선 우선 Git 및 Git-svn 도구를 설치해야 한다. 이 둘을 설치하는 방법은 인터넷에 다양한 자료가 있으며, 각 운영체제에 맞게 설치하면 된다.
2. SVN 저장소 복제하기
SVN 저장소에서 마지막 n개의 리비전을 복제하려면 Git-svn을 사용하여 SVN 저장소를 복제해야 한다. 다음의 명령어를 사용하여 SVN 저장소를 복제한다.
$ git svn clone -r{최신 리비전-n}:{최신 리비전} --no-minimize-url {SVN 저장소 URL}
여기서, {최신 리비전}은 SVN 저장소의 가장 최근 리비전을 의미하며, {SVN 저장소 URL}은 복제하고자 하는 SVN 저장소의 URL을 의미한다. 이 명령어를 실행하면 Git-svn을 사용하여 SVN 저장소가 복제된다.
3. Git 저장소로 전환하기
SVN 저장소를 성공적으로 복제한 후, Git 저장소로 전환할 수 있다. Git 저장소로 전환하려면 다음의 명령어를 사용한다.
$ cd {저장소 디렉토리}
$ git svn fetch
위의 명령어를 실행하면 SVN 저장소의 업데이트 기록이 Git 저장소로 가져와진다.
4. 마지막 n개의 리비전 가져오기
Git 저장소로 전환한 후 복제하려는 마지막 n개의 리비전을 가져올 수 있다. 다음의 명령어를 사용하여 마지막 n개의 리비전을 가져온다.
$ git svn fetch -rHEAD@{n}
여기서, HEAD는 현재 리비전을 의미하며, {n}에는 가져오고자 하는 n개의 리비전 수를 입력한다.
[결론]
Git-svn을 사용하여 SVN 저장소의 마지막 n개의 리비전을 복제하는 방법에 대해 알아보았다. Git-svn을 활용하면 SVN의 업데이트 기록을 유지하면서 Git의 강력한 기능을 활용할 수 있다. 개발자들은 이를 통해 협업 및 버전 관리를 보다 효율적으로 수행할 수 있을 것이다. Git-svn의 다양한 기능과 명령어를 익힌 뒤, SVN 저장소의 마지막 n개의 리비전을 복제하는 방법을 적극적으로 활용해 보자.

반응형
Comments