2009-09-29 6 views
5

SVN 저장소에 저장된 오픈 소스 프로젝트를 수정하고 있습니다. 내 변경 사항을 완료하는 데 시간이 걸릴 가능성이 높기 때문에 git-svn 브리지를 사용하여 Git 저장소로 프로젝트를 확인했습니다. 프로젝트의 Subversion repo에 액세스 할 수 없어 변경 사항을 다시 푸시 할 수 없지만 다른 사람들이 내 수정 사항을 추적 할 수 있도록 Git Repo (GitHub에 있음)를 게시하고 싶습니다. "git svn"repo 게시하기

은 "자식 svn의"REPO를 업데이트하려면, 당신은 이름에서 알 수 있듯이, 는 서브 버전의 repo에서 새로운 변화의 상단에 변경 사항을 rebases, git svn rebase을 사용합니다. 이

  1. 인가 : SVN 저장소에서 클로닝의 repo에 관해서, 내가 관련된 몇 가지 질문을 그래서 물론, 공용 힘내의 repo에으로 업데이트 한 모든 지점을 밀어 좋은 생각이 아니다 안전한 repo에 rebase branch (git-svn rebase 사용)를 게시하는 것이 안전합니까?
  2. Git의 마스터 브랜치가 SVN repo에서 변경 사항을 리베이스하고 있다고 가정 할 때, 그 repo에서 실제 개발을해서는 안된다. 즉 변경 내용을 마스터에 병합하는 경우 SVN 저장소로 밀어 넣어야합니다 (git svn dcommit 사용). 이 정책을 준수한다면 리베이스 된 마스터 지점을 공용 저장소에 게시해도됩니까?

답변

1
  1. 이 있지만, 모든 커밋은 git-svn dcommit를 사용하여 SVN의의 repo에 밀어에만 경우, SVN 분기를 게시하는 것이 안전합니다. 브랜치에 변경 사항이 없으면 git-svn rebase은 앞으로 빨리 이동합니다.

    누군가가 게시 된 지점에서 출장을했다면 SVN 저장소에서 온 사람인지 확인하는 것이 중요합니다. 변경 사항을 수락하려고 시도한 경우 SVN 저장소로 푸시 할 수있는 유일한 방법은 본질적으로 변경 사항을 리베이스하는 것입니다. 커밋 된 변경 사항을 다시 게시 한 후에는 해시가 일치하지 않으므로 충돌하는 커밋을 처리해야합니다.

  2. master에서 작업하는 것이 안전하지만 실용적이지는 않을 수 있습니다. 위의 경우 git-svn dcommit을 실행할 때까지 커밋을 게시 할 수 없습니다. 따라서 커밋하고 싶지 않은 작업이있는 경우 최신 SVN 커밋 (예 : git-svn rebase; git push)을 게시하기 전에 별도의 지점으로 이동해야합니다 (예 : git-svn rebase; git push)

관련 문제