SVN 분기 삭제


91

나는 'features'라는 SVN 프로젝트의 브랜치를 만들었고, 이제 해당 프로젝트를 업데이트하려고 할 때마다 브랜치의 다른 프로젝트 사본을 포함하는 기능 폴더를 가져옵니다. 더 이상 발생하지 않도록 저장소에서 분기를 완전히 제거하는 방법이 있습니까?


의 가능한 중복 삭제하려면 지점
짐 G.

답변:


111

물론입니다. svn rm원치 않는 폴더와 커밋합니다.

앞으로 이러한 상황을 방지하기 위해 SVN 프로젝트에 권장되는 레이아웃 을 따릅니다 .

  • /someproject/trunk폴더에 코드를 넣습니다 (또는 /trunk저장소에 하나의 프로젝트 만 넣으려는 경우)
  • 다음으로 분기 생성 /someproject/branches/somebranch
  • 아래에 태그 넣기 /someproject/tags

이제 작업 사본을 확인할 때만 trunk또는 일부 개별 지점 을 확인하십시오 . 모든 분기를 포함하는 하나의 거대한 작업 사본에서 모든 것을 확인 하지 마십시오 . 1

1 수행중인 작업을 모르는 경우에는 얕은 작업 복사본을 만드는 방법을 알고 있습니다.


58

이 분기가 외부 또는 심볼릭 링크가 아니라고 가정하면 분기 제거는 다음과 같이 간단해야합니다.

svn rm branches/< mybranch >

svn ci -m "message"

저장소에서이 작업을 수행하려면 업데이트하여 작업 복사본에서 제거하려면 다음과 같이 할 수 있습니다.

svn rm http://< myurl >/< myrepo >/branches/< mybranch >

그런 다음 다음을 실행하십시오.

svn update

26
에서 : 그래서 "URL을 삭제하면 [-m으로] 로그 메시지를 제공해야하므로, 그러나, 즉각적인는" svn rm -m message http://...update필요하지 않습니다
rymo

57

사용하는 사람들을 위해 TortoiseSVN을을 , 당신은 리포지토리 브라우저를 사용하여이 작업을 수행 할 수 있습니다 (이 상황에 맞는 메뉴에서 "리포 브라우저를"이라는 것입니다.)

상황에 맞는 메뉴

삭제할 분기 폴더를 찾아 마우스 오른쪽 버튼으로 클릭 한 다음 "삭제"를 선택하십시오.

폴더 삭제

커밋 메시지를 입력하면 완료됩니다.

커밋


SVN 업데이트를 수행하여 디스크에서 폴더를 제거합니다 (분기를 제거하기 전에 삭제하지 않은 경우)
ArieKanarie

12

원격지에서 직접 분기를 삭제할 수도 있습니다. 이 작업을 마치면 다음 업데이트에서 작업 복사본에서 제거됩니다.

svn rm "^/reponame/branches/name_of_branch" -m "cleaning up old branch name_of_branch"

^'svn의 정보'에서 볼 수 있듯이, 원격의 URL에 대한 짧습니다. 큰 따옴표는 ^특수 문자 이기 때문에 Windows 명령 줄에서 필요 합니다.

이 명령은 브랜치를 체크 아웃 한 적이없는 경우에도 작동합니다.


나는 이것을 Mac에서 사용했고 잘 작동했습니다! 내가 최상위 답변을 시도했을 때 " '/ local / path / to / repo / branches / branch-name'is not a working copy"라는 응답을 받았으므로 아마도 내가 만든 브랜치를 확인하지 못했을 것입니다
Mad Bernard

3

체크 아웃에서 다른 것과 마찬가지로 기능 폴더를 삭제 한 다음 변경 사항을 커밋 할 수 있습니다.

이를 방지하기 위해 SVN 레이아웃의 명명 규칙을 따르는 것이 좋습니다.

각 프로젝트가 생성 될 때 트렁크, 브랜치, 태그 폴더를 제공하십시오.

svn
+ project1
  + trunk
    + src
    + etc...
  + branches
    + features
      + src
      + etc...
  + tags
+ project2
  + trunk
  + branches
  + tags

3

작업 사본에서 :

svn rm branches/features
svn commit -m "delete stale feature branch"


3

브랜치를 삭제하는 명령어는 다음과 같습니다.

svn delete -m "<귀하의 메시지>"<분기 URL>

전체 저장소를 가져 오거나 체크 아웃하지 않으려면 터미널에서 다음 명령을 실행하십시오.

1) 작업 복사본을 포함 할 디렉토리의 절대 경로를 가져옵니다
> pwd
2) svn 코드 체크 아웃 시작
> svn 체크 아웃 <브랜치 URL> <포인트 1의 절대 경로>

위의 단계는 전체 폴더가 아닌 분기 폴더 내의 파일을 가져옵니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.