나는 'features'라는 SVN 프로젝트의 브랜치를 만들었고, 이제 해당 프로젝트를 업데이트하려고 할 때마다 브랜치의 다른 프로젝트 사본을 포함하는 기능 폴더를 가져옵니다. 더 이상 발생하지 않도록 저장소에서 분기를 완전히 제거하는 방법이 있습니까?
답변:
물론입니다. svn rm
원치 않는 폴더와 커밋합니다.
앞으로 이러한 상황을 방지하기 위해 SVN 프로젝트에 권장되는 레이아웃 을 따릅니다 .
/someproject/trunk
폴더에 코드를 넣습니다
(또는
/trunk
저장소에 하나의 프로젝트 만 넣으려는 경우)/someproject/branches/somebranch
/someproject/tags
이제 작업 사본을 확인할 때만 trunk
또는 일부 개별 지점 을 확인하십시오 . 모든 분기를 포함하는 하나의 거대한 작업 사본에서 모든 것을 확인 하지 마십시오 . 1
1 수행중인 작업을 모르는 경우에는 얕은 작업 복사본을 만드는 방법을 알고 있습니다.
이 분기가 외부 또는 심볼릭 링크가 아니라고 가정하면 분기 제거는 다음과 같이 간단해야합니다.
svn rm branches/< mybranch >
svn ci -m "message"
저장소에서이 작업을 수행하려면 업데이트하여 작업 복사본에서 제거하려면 다음과 같이 할 수 있습니다.
svn rm http://< myurl >/< myrepo >/branches/< mybranch >
그런 다음 다음을 실행하십시오.
svn update
사용하는 사람들을 위해 TortoiseSVN을을 , 당신은 리포지토리 브라우저를 사용하여이 작업을 수행 할 수 있습니다 (이 상황에 맞는 메뉴에서 "리포 브라우저를"이라는 것입니다.)
삭제할 분기 폴더를 찾아 마우스 오른쪽 버튼으로 클릭 한 다음 "삭제"를 선택하십시오.
커밋 메시지를 입력하면 완료됩니다.
원격지에서 직접 분기를 삭제할 수도 있습니다. 이 작업을 마치면 다음 업데이트에서 작업 복사본에서 제거됩니다.
svn rm "^/reponame/branches/name_of_branch" -m "cleaning up old branch name_of_branch"
은 ^
'svn의 정보'에서 볼 수 있듯이, 원격의 URL에 대한 짧습니다. 큰 따옴표는 ^
특수 문자 이기 때문에 Windows 명령 줄에서 필요 합니다.
이 명령은 브랜치를 체크 아웃 한 적이없는 경우에도 작동합니다.