원본 저장소 (git-svn을 통해 생성됨)의 이전 버전을 기반으로하는 많은 코드가 있습니다. usptream은 이후로 git로 옮겨졌고 새로운 저장소에 코드를 리베이스해야한다.공통 조상이없는 저장소로 리베이스하기
리포지토리의 공통점을 어떻게 찾을 수 있습니까? (리포지토리를 수동으로 조사하지 않고도)?
원본 저장소 (git-svn을 통해 생성됨)의 이전 버전을 기반으로하는 많은 코드가 있습니다. usptream은 이후로 git로 옮겨졌고 새로운 저장소에 코드를 리베이스해야한다.공통 조상이없는 저장소로 리베이스하기
리포지토리의 공통점을 어떻게 찾을 수 있습니까? (리포지토리를 수동으로 조사하지 않고도)?
프로젝트가 매우 인 경우를 제외하고는 커밋 타임 스탬프를 사용하여 svn의 부모 커밋을 새 git 리포지토리와 일치시킬 수 있습니다.
대략적으로 svn -> git 변환이 일어 났을 때, 당신이 상관시킬 수있는 master
/trunk
에서 적어도 하나의 커밋을 찾을 수 있어야합니다. git log -S
이 유용 할 수 있습니다. 주어진 문자열을 소개하거나 제거하는 커밋을 찾을 수 있기 때문입니다.
Subversion 기반 복제에서 코드의 공통 부모와 현재 마스터를 찾을 수 있습니다. 그런 다음이 부모 커밋과 상관 관계를 사용하여 새 커밋 저장소에서 동일한 커밋을 찾을 수 있습니다.이 커밋은 rebase에 적합한 후보가되어야합니다.
그래, 이거 작동하지 않아. 문제는 내 코드가 많은 백 포트 수정 사항이있는 안정적인 분기를 기반으로한다는 것입니다. 그리고 수정본은 모든 곳에서 백 포트됩니다. -/ –
공통 조상이 있다면 안정 분기의 내용도 함께 가져올 수 있어야합니다. 그런 다음 최소한 하나의 저장소에 모든 것을 갖추고 표준 git 툴을 사용하여 원하는 곳에 변경 사항을 적용 할 수 있습니다. –
매우 적극적이었습니다. 게다가 원래 svn 저장소의 브랜치가 새로운 git 저장소로 전송되지 않았다고 생각하기 시작했습니다. 그래서 나는 좋은 rebase point (fork-point와 너무 멀지 않다)를 찾아야한다. –
답변이 아닌 댓글이 아니십니까? – Jubobs
@Jubobs, 그것은 매우 유용한 * 답변으로 밝혀지지 않았을 수도 있지만 질문에 대답하기위한 것입니다. –