[svn] Subversion : 체크 아웃하고 수정 한 다음 브랜치로 만들 수 있습니까?

내 트렁크에서 로컬 DIR로 체크 아웃하고 거기에서 많은 로컬 변경을 수행했습니다. 이제 트렁크에 다시 커밋하고 싶지 않지만이 로컬 버전에서 분기를 만들고 싶습니다. 가능합니까?

난 그냥 다음 분기에 트렁크를 복사 할 수 cd DIRsvn 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”를 선택합니다.

이러한 방식으로 태그를 생성하는 것은 (추적 성 이유로) 좋은 생각이 아니지만 브랜치의 경우 완벽하게 괜찮습니다.


답변