SVN- 지점을 트렁크로 다시 병합 할 수 없습니다 - 수많은 트리 컨트레트

StackOverflow https://stackoverflow.com/questions/1008681

  •  06-07-2019
  •  | 
  •  

문제

나는 간단한 시나리오라고 생각한 것을 가지고있다 - tortoisesvn :

1) 나는 응용 프로그램의 지점 (B2)을 만들었습니다 (이미지 스프라이트 및 Jawr 구현을 위해 작업).

2) 트렁크에서 테스트 및 개발이 정상적으로 진행되었습니다.

3) 나는 지난 며칠 동안 몇 차례에 따라 지점을 다시 기반으로합니다.

3.1) 트렁크 (수정 범위에 따라)를 지사 B2 작업 사본으로 합병하여 합병 중 충돌을 해결했습니다.

3.2) (Branch-B2를 테스트 한 후) RE 기반 Branch-B2를 커밋합니다.

이 모든 것이 내가 예상 한대로 작동했습니다. 그러나 지점을 트렁크로 다시 병합하는 것은 나와 함께 있습니다.

4) Branch-B2에 커밋 된 모든 업데이트 후; 트렁크와 Branch-B2에서 SVN 업데이트를 수행해야합니다.

5) 그런 다음, 나는 Branch-B2에서 트렁크로 합병하려고합니다. 그러나 트렁크에 추가 된 새 파일의 경우, 그 후 Branch-B2에 다시 추가 된 경우 트리 컨플itt를 얻습니다. 이러한 갈등을 해결하는 적절한 방법이 무엇인지 잘 모르겠습니다.

내가 본 가장 전형적인 조언은 트렁크에서 트리-컨플럼트 파일을 삭제 한 다음 분기를 병합하는 것입니다. 또는 전체 트렁크를 삭제하고 분기 파일을 복사 한 다음 트렁크에서 새 버전으로 커밋하십시오. 이러한 옵션 중 어느 것도 좋은 아이디어처럼 보이지 않습니다. 첫 번째는 고통이며 둘 다 파일 개정 이력을 잃을 것 같습니다.

내가 무엇을 잘못했는지, 어떻게 고치겠습니까?

도움이 되었습니까?

해결책

Pre-1.5 합병 스타일을 사용하고 지점을 트렁크로 재 통합하려고하는 것처럼 들립니다. 이 경우, 먼저 모든 트렁크 변경 사항이 브랜치로 병합되었는지 확인한 다음 지점을 트렁크를 가리키는 작업 사본으로 범위를 관리하는 대신 트렁크에서 병합하고 싶습니다. @head to branch@head "작업 사본이 트렁크를 가리키고 있습니다. 본질적으로:

"트렁크를 지점과 동일하게 만드는 데 필요한 모든 변경 사항을 알려주십시오."

트렁크와 브랜치의 유일한 차이점은 지점에서의 변경 사항이기 때문에 이미 모든 트렁크 변경 사항을 지점에 병합 한 경우에도 효과가 있습니다.

이해가 되나요? :)

다른 팁

나는 같은 문제를 조사했다. 거북이 SVN 1.6.5의 "기능"입니다. TortoisesVN 1.5는 REPOSITOTY (SVN 1.5)에서 잘 작동합니다. Rebasing이 Mainline에서 파일을 새로운 것으로 추가 할 때 TortoisesVN 1.6.5 (병합 역사를 저장하지 않음).
그리고 해당 파일을 메인 라인과 충돌하는 것으로 취급 할 때 분기 상승을 다시 통합합니다.

TortoisesVN 1.6 "Reintegrate Branch"의 기능을 사용하여 문제를 해결했습니다. 특징 지점에 특별히 목적이 있습니다.

- Alexey Korsun

다음은 @rytmis 답변에 기여할 수있는 약간의 정보가 있습니다.

트렁크를 지점이나 태그처럼 정확하게 만드는 높은 수준의 단계 :

  1. 트렁크에서 체크 아웃.
  2. 트렁크의 작업 사본을 사용하여 트렁크에서 브랜치/태그로 병합하십시오.
  3. 저지르다.

예제 'SVN'명령 행 명령 :

svn checkout <trunk url>
cd trunk
svn merge <trunk url> <branch/tag url>
svn commit -m "<message>"

위의 해결책이 어떻게 작동하는지 알 수 없었기 때문에 내 작업이 다릅니다. 먼저 분기에 트렁크의 모든 변경 사항이 포함되어 있는지 확인했습니다.

1) 나는 트렁크의 신선한 사본을 얻었다. 2) 나는 거북이 SVN 수출을 사용하여 지점을 임시 위치로 내 보냈다. 3) Windows Explorer를 사용하여 전체 브랜치 트리를 트렁크로 복사하고 모든 파일을 덮어 쓰고 4) Nortoise에서 변경 사항 확인 명령을 사용하고 모든 회상되지 않은 파일 확인란을 포함 시켰습니다. 5) 모든 파일을 선택하고 추가를 클릭했습니다.

개시되지 않은 파일에 출력이 포함되지 않도록 구축되지 않은 솔루션을 사용해야합니다.

우리가 1.5+로 업그레이드 할 때까지 기다릴 수 없습니다

TortoisesVN을 사용하여 "Rivision 범위 병합"옵션을 선택하는 동안 병합 할 수정을 선택하십시오. 이렇게하면 각 병합 작업마다 동일한 파일에 대한 트리 충돌이 다시 발생하지 않습니다.

나는 그 문제를 해결했다고 생각합니다. 1. 합병 한 "분기"마우스 오른쪽 버튼을 클릭하십시오. 2. Tortoise SVN >> 병합 3. "다양한 개정판을 병합"및 다음 4. !!! "Reverse Merge"를 확인하십시오 !!! , URL은 "Branch", 특정 범위 "에서"최근에 병합 된 개정 "및 다음 5. 다음 5. SVN Commite

그 후 나는 분기에서 트렁크로 병합 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top