2011-03-24 2 views
1

현재 브랜치의 일부 변경 사항을 트렁크에 병합하려고합니다. 브랜치의 변경 사항은 트렁크의 각 프로젝트 이름을 제거합니다. 따라서 단순화를 위해 술SVN이 프로젝트를 트렁크로 변경했습니다.

company-name-services 
company-name-security 
company-name-web 

... 트렁크의 루트는 다음과 같습니다 말할 수와 분기

services 
security 
web 

다음 명령

순서대로 분기에 실행 된 ... 그래서처럼 보이는 코드 변경은 분기 및 트렁크 모두에서 발생했다 그 후 ...

svn mv company-name-services services 
svn mv company-name-security security 
svn mv company-name-web web 

현재 상태로 그것을 얻을 수 있습니다. 이제 트렁크 용 작업 복사본 내에서 Merge를 수행하고 있습니다. Tortoise SVN을 병합하여 병합 유형으로 'Reintegrate a branch'를 선택하고 실행 결과로 'From URL'로 분기 경로를 선택했습니다. 지금 내 작업 복사본에있는이 ...

company-name-services 
company-name-security 
company-name-web  
services 
security 
web 

폴더 회사 이름 - *를 삭제 표시된 다른 debranded 폴더를 추가 할 수 표시됩니다. debranded 프로젝트 폴더에있는 모든 파일이 문제는 관련된 역사 정보가 없으며 트렁크에서 발생한 악화 된 변경 사항이 제거 된 폴더에 없습니다. 나는 svn 명령 줄 도구를 사용하여 폴더의 이름이 바뀌 었음을 고려하여 SVN이 트렁크의 변경 사항을 가져와 병합 후에 병력을 보존 할 정도로 지능적이라고 생각했습니다. 내가 기대하는 결과가 병합을 수행해야하는 다른 방법입니까?

답변

1

왜 이런 일이 일어 났는지 이해하려면 svn이 병합하는 방법을 이해해야합니다.

브랜치를 다시 트렁크에 병합 할 때 브랜치에서 수행 된 모든 변경 사항을 실제로 트렁크에 병합합니다. 병합 할 때, svn은 여러분의 지사에서 모든 커밋을 취하고 하나씩 트렁크에 동일한 변경을 수행합니다.

첫 번째 변경 사항은 아마도 루트 디렉토리의 이름을 바꾸는 것이었기 때문에 지점에 대한 커밋은 svn이 트렁크에서도 동일하게 수행합니다.

트렁크의 각 하위 폴더와 트렁크의 해당 하위 폴더를 수동으로 병합하면이를 극복 할 수 있다고 생각합니다. 각 하위 폴더

1

에 대한 등등

> cd company-name-services 
> svn merge -r <insert first revision after rename>:HEAD <insert url to sub-folder in branch> . 

과 : 나는 Tortois이 명령을 모르겠지만, 명령 행은 다음과 같이 될 것이다 (당신이 트렁크에 루트 폴더에 시작 가정) svn mv은 분기를 만드는 잘못된 방법이었습니다. 그건 움직이지. svn cp을 사용 했어야하는데, 트렁크 사본을 브랜치에 만듭니다. 또는 TortoiseSVN을 사용하여 먼저 분기를 만들고 병합을 다시 수행해야합니다.

트렁크를 지점으로 옮기고 지점에서 작업 한 다음 다시 지점을 트렁크로 옮긴 것입니다. 유지할 별도의 기록이 없습니다.

SVN book, 특히 Chapter 4, Branching and Merging, 보조 제목 Creating a Branch을 참조하십시오.

0

답변에 대한 회신에 사과 사과해야 할 담당자가 아직 없습니다.내 게시물에 명확하지 않은 수 @Ken

, 나는 내가 이런 일에 해당하는 것입니다 생각 명령을 issueing 분기하는 거북이를 사용하여 분기를 만들 svn mv을 사용하지 않은 ...

svn cp http://my.server/repos/myRepo/trunk \ 
    http://my.server/repos/myRepo/branches/my-branch 

명령 줄에서 다음 분기 내에서 나는 svn mv 명령을 발행하여 저장소의 루트에있는 폴더의 이름을 변경했습니다.

@sstendal 오전에 작업하고 결과로 회신 할 때 귀하의 제안을 시도하겠습니다.

+0

자신의 질문에 대한 답변을 설명 할 수 있어야합니다. 둘째, 더 많은 정보가 있으면 언제든지 질문을 수정할 수 있습니다. ** 업데이트 **를 추가하십시오. :) – dandan78