브랜치를 트렁크와 병합


119

TortoiseSVN을 사용하여 브랜치에서 변경 한 내용을 트렁크와 병합해야합니다.

저는이 프로젝트의 유일한 개발자이므로 트렁크가 변경되지 않았다는 것을 알고 있습니다. 나는 결국 우리 팀이 그것을 사용할 수 있도록 SVN을 배우고 있습니다.

기본적으로 트렁크가 가지와 똑같이 보이기를 원합니다.

pre-svn 세계에서는 브랜치 폴더의 파일을 복사하고 트렁크 폴더의 파일을 삭제 한 다음 브랜치를 트렁크에 복사합니다.

TortoiseSVN을, 나는 시도했다 Reintegrate a branch, Merge a range of revisions하고 Merge two different trees. 실제로 트렁크를 변경하는 것은 없습니다. 나는 또한 트렁크 위에 분기를 시도했습니다. 이것은 트렁크가 이미 존재한다는 오류를 제공합니다.

답변:


157

귀하의 경우 :

  1. 작업 복사본을 트렁크로 전환 (SVN 스위치)
  2. 분기를 작업 복사본에 병합 (SVN 병합)
  3. 모든 것이 여전히 컴파일되고 작동하는지 확인하십시오.
  4. 작업 복사본 (트렁크) 커밋
  5. 가지를 죽이는 것을 고려하십시오

팀 환경 에서는 먼저 브랜치의 트렁크에서 최신 수정 사항을 병합하고 모든 것이 컴파일되고 작동하는지 확인한 다음 위의 단계를 수행하는 것이 좋습니다 (이미 변경 사항을 테스트 했으므로 간단합니다).


최신 정보

5 단계에서는 가지를 죽이는 것을 언급합니다. 기능의 분기가 트렁크에 있으면 트렁크의 일부로 간주되어야하기 때문입니다. 이 경우 아무도 작업을 계속하지 않도록 가지를 죽여야합니다. 해당 기능에 대한 주요 수정이 필요한 경우 새 분기를 만들어야합니다.

내가 죽이지 않는 유일한 분기는 특정 릴리스가 더 이상 지원되지 않는 한 유지 보수 및 릴리스 분기입니다.

무엇이든 상관없이 항상 모든 개정판에 액세스 할 수 있으므로 분기를 종료하는 것은 다른 개발자가 죽은 분기에서 개발하는 것을 방지하는 데만 사용됩니다.


5 단계에서 추가 한 설명이 1 단계가 더 좋을 수 있습니까? TortoiseSVN Merge 대화 상자에서 "Reintegrate a branch"를 사용하려면 먼저 트렁크 (또는 기본 브랜치)의 모든 변경 사항을 병합해야합니다.
jbvo

1
첫 번째 단계 (작업 복사본을 트렁크로 전환)는 별도의 분기 및 트렁크 작업 복사본이없는 경우에만 필요합니까?
Jeff B

1
여기에서 누락 된 주요 세부 사항은 각 단계에서 클릭하는 폴더이므로 각 단계의 컨텍스트를 알 수 있습니다.
MacGyver 2014 년

10

TortoiseSVN 1.8.5에서 Merge | 두 개의 다른 트리 병합이 작동합니다. 분기 / 태그를 다시 트렁크에 병합 할 때 트릭은 From URL이 트렁크이고 To가 태그 / 분기라는 것입니다. 이상하지만 사실입니다.

출처 : 병합

작업 사본에는 없지만 태그 / 브랜치에있는 디렉토리의 경우 충돌 오류가 발생할 수 있습니다. 충돌을 수락하고 병합을 다시 실행하십시오.


tortoisesvn 사이트의 지침을 따른 후 병합 후 아무것도 수정하지 않고 트렁크를 커밋해야합니다. 비재 귀적 커밋 경고를 일으키는 커밋하고 싶지 않은 몇 가지를 선택 취소하려고했습니다. 또한 지침에 따라 분기를 삭제하는 것이 좋습니다.
goku_da_master

6

먼저 작업 복사본을 트렁크로 전환합니다. 그런 다음 분기에서 트렁크까지 수정 범위를 병합합니다. 이 대화 상자가 완료되면 차이점은 트렁크의 작업 복사본에서 보류중인 변경 사항입니다. 작업 복사본에서 수동으로 변경 한 것처럼 커밋해야합니다.

내 사용에서는 트렁크를 계속 실행하고 빌드 할 때 분기를 스핀 오프하는 것이 더 일반적입니다. 따라서 내가해야 할 유일한 병합은 트렁크에서 버그 수정을 가져와 최신 빌드 브랜치에 배치하고 해당 브랜치를 다시 릴리스하는 것입니다. 병합하는 것이 기껏해야 서투 르기 때문에 가장 쉬운 방법입니다. 최신 브랜치와 트렁크를 내 컴퓨터에 체크 아웃하고 말 그대로 트렁크에서 브랜치로 파일을 복사하고 둘 다 체크인하는 것입니다.


2
파일을 "복사"할 때는 많은주의를 기울여야합니다. 숨겨진 svn 디렉토리의 손상을 방지하기 위해 TortoiseSVN의 내보내기와 같은 것을 사용하십시오.
Milimetric 2011

3

TortoiseSVN 1.9.3, Build 27038을 사용하고 있습니다.

분기를 트렁크에 병합하려면 아래 단계를 따르십시오.

1) 트렁크 작업 복사본을 마우스 오른쪽 버튼으로 클릭하고 아래 옵션을 선택하십시오.

여기에 이미지 설명 입력

2) 분기가 트렁크로 병합되는 경우 아래 그림과 같이 두 번째 옵션을 선택하고 다음을 클릭합니다

여기에 이미지 설명 입력

3) From : 필드에 트렁크의 전체 폴더 URL을 입력합니다. 이것은 잘못 들릴 수 있지만 트렁크가 분기 변경 사항을 추가하려는 시작 지점이라는 점을 기억하십시오. 받는 사람 : 필드에 기능 분기의 전체 폴더 URL을 입력합니다.

여기에 이미지 설명 입력

4) 다음을 클릭하고 테스트 병합을 수행하십시오.

여기에 이미지 설명 입력

5) 테스트 병합이 성공하면 병합 버튼을 클릭합니다.

6) 병합이 성공하면 트렁크에서 변경 사항을 커밋합니다.

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