문제

최신 버전의 git에서는 구성이 svn.pushmergeinfo 소개되었습니다 :

구성 키:svn.pushmergeinfo

이 옵션을 사용하면 git-svn은 가능한 경우 SVN 저장소의 svn:mergeinfo 속성을 자동으로 채우려고 시도합니다.현재 이 작업은 첫 번째 부모를 제외한 모든 부모가 이미 SVN으로 푸시된 비빨리 감기 병합을 커밋하는 경우에만 수행할 수 있습니다.

일부 개발자는 SVN을 사용하고 일부는 Git-SVN을 사용하는 혼합 환경을 갖기 위해 이를 사용하고 있습니다.이는 Git에서 SVN 브랜치를 브랜치하고 병합할 때 훌륭하게 작동합니다. git svn dcommit-SVN으로 돌아가면 실제로 거의 모든 경우에 mergeinfo 속성이 올바르게 채워집니다.그러나 특정 상황에서는 그렇게 하는 것이 잘못되었습니다.

이는 트렁크를 해당 브랜치에 병합한 후(사실상 SVN 재통합과 동일) 브랜치를 마스터(트렁크)에 병합할 때 주로 발생합니다.

트렁크에서 브랜치로의 병합은 해당 브랜치의 트렁크에 대한 mergeinfo 라인을 추가하지만(원하는 대로) 브랜치에서 다시 트렁크로의 재통합 병합은 해당 라인을 트렁크의 mergeinfo에 복사하여 트렁크의 mergeinfo 속성에 자체 참조 라인을 효과적으로 생성합니다. 그것은 그 자체를 가리킨다.내가 아는 한 이 자체 참조는 절대 발생해서는 안 되며 SVN만 사용할 때도 발생하지 않습니다.그래서 저는 이것을 git-svn 버그라고 생각합니다(제가 보고한 바 있습니다). 여기).이는 결국 다른 SVN 사용자에게 영향을 미치고 향후 커밋 시 병합 정보를 손상시키는 문제를 야기합니다.

내가 찾고 있는 것은 해결 방법입니다. 병합되는 브랜치에 대한 mergeinfo 라인을 복사하지 않도록 git에게 쉽게 지시할 수 있는 방법 또는 커밋 시 자체 참조를 제거하도록 SVN에 지시하는 방법(또는 자체 참조 mergeinfo 라인을 생성하지 않는 다른 솔루션) 하지만 git에서 자동 svn:mergeinfo 생성의 다른 특성은 유지합니다.

(정확하게 말하자면 나는 ~ 아니다 나에게 Git 매뉴얼을 인용하거나 "Git-SVN과의 병합은 위험하며 지원되지 않습니다"라고 말해 줄 사람들을 찾고 있습니다.문제에 도움을 주거나 대체 작업 흐름을 제안할 수 있는 경우에만 답변해 주세요.관련 Git 코드에 대한 포인터를 사용하면 이 문제를 해결하기 위한 패치를 만들 수 있으므로 도움이 될 것입니다.감사해요!)

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