Programing

SVN-재 통합 병합 오류 : "조상과 관련이 있어야 함"

lottogame 2020. 11. 28. 08:35
반응형

SVN-재 통합 병합 오류 : "조상과 관련이 있어야 함"


TortoiseSVN을 사용 - 나는 시험 병합을 사용할 때, 나는 오류 "얻을 에 http : // mysvnserver / SVN / 주 / 지점 / PROJECTA이 ancestrally 관련되어야합니다 HTTP : // mysvnserver / SVN / 주 / 트렁크 / ProjectB을 "

이 문제를 해결하려면 어떻게해야합니까?


나는 방금 비슷한 문제를 겪었고 내가 맞은 문제와 해결책을 추가하고 싶었습니다. 가지는 전체 나무가 아닌 줄기의 하위 폴더로 만들어졌습니다. 따라서 재 통합을 시도 할 때 계층 구조가 일치하지 않았습니다. 통합을 내 트렁크 WD의 적절한 하위 폴더로 재구성하기 만하면 프로세스가 진행될 수있었습니다.

이것이이 Q / A를 친 사람에게 도움이 될 수 있기를 바랍니다. :)


추측 해 보겠습니다. 프로젝트가 관련이 없습니까? 그들 중 하나가 분기되었는지 여부를 확인하십시오.

즉각적인 해결책 : 수동 병합 또는 "svn merge --ignore-ancestry"명령 줄 시도


으로 davebytes는 언급이 분기하는 경우이 문제가 발생할 수 있습니다 trunk\X으로 branches\Y,하지만 이동 X새 폴더로 Z즉, trunk\X\Z.

당신은 단지에 변화를 병합하려는 경우 branches\Y에를 trunk\X, 당신은 갈등을 많이 얻을 것이다; 방금 병합 시도 할 경우 branches\Ytrunk\X\Z, 당신은 "ancestrally 관련"오류가 발생합니다.

그러나, SVN의 설명서는 기본 문제를 설명 : svn merge정말 호출해야합니다 svn diff-and-apply. 대신이 시나리오에서 설명해야하는 것은의 r100에서 r200까지 발생한 변경 사항을 요약하고 branches\Y이러한 변경 사항을에 적용하려고한다는 것 trunk\X\Z\입니다.

TortoiseSVN에서 이것은 로컬 작업 복사본에 두 개의 다른 트리를 병합하는 시나리오 trunk\X\Z입니다. r100은 branches\Y"from"으로, r200은 branches\Y"to"로 설정됩니다.


다음과 같은 이유로이 문제가 발생했습니다.

TortoiseSVN의 repo 브라우저로 폴더를 만들어 브랜치로 사용했습니다. 그 후 수동으로 생성 한 폴더를 작업 폴더에 병합하려고했습니다.

해결책은 : 처음에 수동으로 분기를 생성하지 말고 대신 TortoiseSVN-> 분기 / 태그 ... 옵션을 사용하여 분기를 생성하십시오.

도움이 되길 바랍니다.


처음에는 루트 폴더에서 병합을 시도했지만 오류가 발생했습니다. 그런 다음 병합하려는 특정 폴더로 이동 한 다음 병합 할 올바른 폴더를 선택했습니다.

예,

내 지점에는 프로젝트 구조가 있습니다.

 -Root    
    - Code
    - DB

태그를 생성하고 태그의 DB 폴더로 변경했습니다. 이제 태그 변경 사항을 브랜치로 가져오고 싶습니다. 그래서 저는 브랜치로 전환하고 병합을 시도했는데 "must be ancestrally related"오류가 발생했습니다.

그래서 해결책은

I browsed to "DB" folder in branch, right click and select Tortoise SVN->Merge-> Merge a range of revisions -> 

이제 병합 할 URL에서 다음을 선택했습니다.

the "DB" folder from my tag.
Then, "test branch". Everything worked fine :D

그래서 "Merge"버튼을 클릭했습니다.


이 오류는 분기 (또는 트렁크) 중 하나와 똑같은 이름의 파일이있는 경우 발생할 수 있습니다.

# svn switch ^/trunk
Updated to revision 123.
# ls
file1
file2
v1
# svn merge --reintegrate ^/branches/v1
svn: E195016: ^/branches/v1@123 must be ancestrally related to ^/trunk/v1@123

이 문제를 해결하려면 현재 dir을 명령에 추가하십시오 (점 참고) :

# svn merge --reintegrate ^/branches/v1 .

이것은 실생활의 예이며 매우 불쾌한 시간을 두어 번 들였습니다. :(


나는 다른 프로젝트와 합병하고 있었다. 이 문제가 발생했습니다. 나는 올바른 지점과 합쳐서 잘 작동했습니다. 내 나쁜 난독증


나는 같은 오류가 있었고 그 이유는 권한에 관한 것입니다.

문제는 한 개발자가 읽기 / 쓰기 권한이있는 다른 분기에 대한 변경 사항을 통합하려고 시도하기 때문에 읽기 / 쓰기 권한이 있지만 마지막 분기는 읽기 권한 만있는 다른 분기에서 만든 분기입니다.

다음은 권한이있는 구조입니다 (r = 읽기, w = 쓰기).

트렁크 (r) 개발 (r) QA (rw) 분기 featureBranch1 (rw)

이 경우, 개발은 트렁크에서, QA는 개발에서, featureBranch1은 개발에서 작성되었습니다. 그가 개발에서 생성 된 브랜치 인 QA에 featureBranch1을 재 통합하려고하는데 개발을위한 쓰기 권한이 없다는 사실은 우리의 경우 QA에서 featureBranch1을 재 통합하려고 할 때이 메시지를받는 문제입니다.

그에게 개발을 위해 쓰기 권한을 부여한 직후 메시지가 사라집니다.


I had the same problem. I fixed it by correctly cd on which I merged. I was merging in the path directory to project not in the path directory to trunk ( who is the actual ancestor).

참고URL : https://stackoverflow.com/questions/490164/svn-reintegration-merge-error-must-be-ancestrally-related

반응형