내 트렁크에서 로컬 DIR로 체크 아웃하고 거기에서 많은 로컬 변경을 수행했습니다. 이제 트렁크에 다시 커밋하고 싶지 않지만이 로컬 버전에서 분기를 만들고 싶습니다. 가능합니까?
난 그냥 다음 분기에 트렁크를 복사 할 수 cd DIR
및 svn switch
지점에?
업데이트 : 답변 주셔서 감사합니다. 단계를 요약하려면 :
cd DIR
svn copy . new-branch-URL
svn switch new-branch-URL .
(점 참고)
답변
명령 줄 도움말에 따르면 svn copy는 디렉토리에서 저장소 URL로 복사 할 수 있습니다. 따라서 작업 복사본을 브랜치에 복사 할 수 있어야합니다. 예 :
svn copy working_directory url_to_branch
답변
SVN 책 ( http://svnbook.red-bean.com/en/1.6/svn-book.html#svn.branchmerge.using.create )은 로컬 작업 복사본에서 브랜치를 만드는 것을 권장하지 않습니다.
svn copy
작업 복사본 내에서 디렉터리를 복제하는 데 사용하여 분기를 만들 수도 있지만 이 기술은 권장되지 않습니다. 사실 꽤 느릴 수 있습니다! 클라이언트 측에서 디렉토리를 복사하는 것은 실제로 로컬 디스크의 해당 작업 복사 디렉토리 내의 모든 파일과 하위 디렉토리를 복제해야한다는 점에서 선형 시간 작업입니다.
대신 브랜치를 먼저 만든 다음 svn switch
명령 을 사용 하여 변경 사항을 커밋 할 수 있습니다. 작업 복사본이 트렁크에서 상당히 오래된 경우 소스 URL에 “@REV”를 추가합니다. 여기서 “REV”는에서보고 한 작업 복사본의 개정판입니다 svn info
.
그러나 서버에서 디렉토리를 복사하는 것은 일정한 시간 작업이며 대부분의 사람들이 브랜치를 만드는 방법입니다.
$ svn copy http://svn.example.com/repos/calc/trunk \
http://svn.example.com/repos/calc/branches/my-calc-branch \
-m "Creating a private branch of /calc/trunk."
답변
내 SVN 클라이언트 : TortoiseSVN에서 다음을 수행하면 충분합니다.
- 분기하려는 최상위 디렉토리를 마우스 오른쪽 버튼으로 클릭하십시오.
- “To URL”에서 저장소의 분기 디렉토리를 선택하십시오.
- “다음에서 저장소에 복사본 만들기 :”프레임에서 “작업 복사본”을 선택합니다.
완료 🙂
지정된 저장소 URL에 로컬 버전을 복사하는 것과 같습니다.
답변
예, SVN 명령 줄 과 tortoiseSVN 으로이 작업을 수행 할 수 있습니다. .
SVN 작업 복사본을 src로 지정하고 새 분기를 대상으로 지정해야합니다.
svn copy <file/path/to/working/copy> <URL/TO/REPOSITORY/BRANCH>
명령.
TortoiseSVN에서 작업 복사본을 가리키고 컨텍스트 메뉴에서 “Branch / tag”를 선택하고 “Create copy in the repository from :”섹션에서 “Working copy”를 선택합니다.
이러한 방식으로 태그를 생성하는 것은 (추적 성 이유로) 좋은 생각이 아니지만 브랜치의 경우 완벽하게 괜찮습니다.