나는 ‘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 명령 줄에서 필요 합니다.
이 명령은 브랜치를 체크 아웃 한 적이없는 경우에도 작동합니다.
답변
체크 아웃에서 다른 것과 마찬가지로 기능 폴더를 삭제 한 다음 변경 사항을 커밋 할 수 있습니다.
이를 방지하기 위해 SVN 레이아웃의 명명 규칙을 따르는 것이 좋습니다.
각 프로젝트가 생성 될 때 트렁크, 브랜치, 태그 폴더를 제공하십시오.
svn
+ project1
+ trunk
+ src
+ etc...
+ branches
+ features
+ src
+ etc...
+ tags
+ project2
+ trunk
+ branches
+ tags
답변
작업 사본에서 :
svn rm branches/features
svn commit -m "delete stale feature branch"
답변
브랜치를 삭제하는 명령어는 다음과 같습니다.
svn delete -m “<귀하의 메시지>”<분기 URL>
전체 저장소를 가져 오거나 체크 아웃하지 않으려면 터미널에서 다음 명령을 실행하십시오.
1) 작업 복사본을 포함 할 디렉토리의 절대 경로를 가져옵니다
> pwd
2) svn 코드 체크 아웃 시작
> svn 체크 아웃 <브랜치 URL> <포인트 1의 절대 경로>
위의 단계는 전체 폴더가 아닌 분기 폴더 내의 파일을 가져옵니다.