Programing

SVN 분기 삭제

crosscheck 2020. 9. 18. 07:38
반응형

SVN 분기 삭제


나는 '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의 절대 경로>

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

참고 URL : https://stackoverflow.com/questions/3816626/deleting-an-svn-branch

반응형