Git-svn은 하위 버전 저장소에서 마지막 n개의 리비전을 복제하는 방법은 무엇입니까?
문제
하위 버전 저장소에서 git-svn을 사용하여 얕은 복사본을 만드는 방법, 예를 들어 마지막 세 개의 수정본만 가져오는 방법은 무엇입니까?
그git clone
옵션을 사용하는 경우 Git 저장소에서 마지막 n개의 리비전을 가져올 수 있습니다.--depth
저장소의 수 .", 저의얕은복사얻는것입니다즉을본장소▁i,다입니즉것▁of▁a▁get얻▁copy.예:
git clone --depth 3 git://some/repo myshallowcopyrepo
git-svn에도 비슷한 옵션이 있습니까?
지금까지의 나의 발견들
지금까지 나는 단지 그것을 찾았습니다.-rN
: " 션위치옵"N
끌어 당기기 위한 수정사항입니다.예:
git svn clone -rN svn://some/repo
▁toibility니▁poss를 사용할 이 있습니다.-r$REVNUMBER:HEAD
오류 메시지가 반환된 마지막 3개의 수정사항을 얻기 위해 다음을 시도했습니다.
$ git svn clone --prefix=svn/ -s -rHEAD~3:HEAD http://some/svn/repo .
revision argument: HEAD~3:HEAD not understood by git-svn
그래서 교체했습니다.HEAD~3
세 번째이지만 마지막 개정판 534의 실제 번호와 함께.그것은 효과가 있었지만, 그것은 제가 먼저 세 번째이지만 마지막 커밋의 수정 번호를 알아내야 합니다.
$ git svn clone --prefix=svn/ -s -r534:HEAD http://some/svn/repo .
문서화
Git-SVN에서 클론을 하여 Git-SVN에서-r$REV:HEAD
).
예:git svn clone -s -r1450:HEAD some/svn/repo
Git의 데이터 구조는 DAG(방향 비순환 그래프)의 포인터를 기반으로 하며, 이는 뒤로 걷는 것을 단순하게 만듭니다.n
◦에서는 .그러나 SVN(및 따라서 Git-SVN)에서는 수정 번호를 직접 찾아야 합니다.
저는 거대한 버전 트리에서 제한된 수의 수정사항을 얻기 위해 다음을 자주 사용합니다(곧 svn 수정사항 35000에 도달합니다).
# checkout a specific revision
git svn clone -r N svn://some/repo/branch/some-branch
# enter it and get all commits since revision 'N'
cd some-branch
git svn rebase
그리고 지점이 어디서 시작되었는지 알아내는 좋은 방법은svn log
분기에서 첫 번째 항목(실행할 때 마지막 항목)을 찾습니다.
svn log --stop-on-copy svn://some/repo/branch/some-branch
지금까지 저는 모든 지점을 추적하는 번거로움이 가치가 있다고 생각하지 못했습니다.복제하는 데 너무 많은 시간이 걸리고 svn과 git이 원하는 만큼 함께 작동하지 않습니다.저는 패치 파일을 생성하여 다른 svn 브랜치의 git clone에 적용하는 편입니다.
7년 후, 사막에서, 텀블위드 한 마리가...
수락된 답변에 만족하지 못해서 Github에서 사용할 수 있는 스크립트를 몇 개 만들었습니다.이것들은 사용하고자 하는 모든 사람들에게 도움이 될 것입니다.git svn clone
그러나 전체 저장소를 복제하고 싶지 않으며 기록 중간에 복제할 특정 리비전을 검색하지 않습니다(리포지토리를 복제하는 경우도 있음).여기서는 마지막 N개의 리비전만 복제할 수 있습니다.
사용하다git svn clone
최근 50개의 수정본을 복제합니다.
# -u The SVN URL to clone
# -l The limit of revisions
# -o The output directory
./git-svn-cloneback.sh -u https://server/project/trunk -l 50 -o myproj --authors-file=svn-authors.txt
SVN repo에서 이전 N개 리비전 찾기
# -u The SVN URL to clone
# -l The limit of revisions
./svn-lookback.sh -u https://server/project/trunk -l 5
SVN 저장소 옵션의 거북이 깃 도구로 시도해 보았는데, 그것은 나에게 효과가 있습니다.
"revision 인수::"라는 오류가 여러 번 발생했습니다.HEAD가 git-svn에 의해 이해되지 않음"
수정 한계의 수를 늘림으로써 작동합니다.
예를 들어 50 대신 100
./git-svn-cloneback.sh -u https://server/project/sys -l 100 -o myproj --https-file=httpsn-https.txt
언급URL : https://stackoverflow.com/questions/747075/how-to-git-svn-clone-the-last-n-revisions-from-a-subversion-repository
'sourcetip' 카테고리의 다른 글
한 번만 캐스케이드 삭제 (0) | 2023.05.08 |
---|---|
MongoDB는 쓰기를 어느 수준까지 잠급니까?(또는: "연결당"은 무엇을 의미합니까? (0) | 2023.05.08 |
목록의 각 요소에 숫자를 곱하려면 어떻게 해야 합니까? (0) | 2023.05.08 |
Git Revert, Checkout 및 Reset의 차이점은 무엇입니까? (0) | 2023.05.08 |
Visual Studio 2012 웹 게시에서 파일을 복사하지 않음 (0) | 2023.05.08 |