2013-10-11 2 views
1

그래서 SVN 저장소를 GitHub로 마이그레이션했습니다. SVN을 사용하여 마이그레이션 된 저장소를 체크 아웃하고 실수로 빈 커밋 (SVN 기록에서 r75)을 수행했습니다. 빈 커밋 제거하기 위해, 내가 직접 자식을 사용하여, 다시 시간이 저장소를 체크 아웃과 함께 커밋 제거 : 마스터에 밀어 강제 후Subversion 히스토리에서 빈 git commit을 완전히 제거합니다.

git rebase -i HEAD~2

, GitHub를 이제 제대로 만 74 커밋을 표시합니다 ,하지만 내가 SVN 로그를 볼 때, 나는 여전히 r75로 커밋을 볼 수있다.

[email protected]:~/blah$ svn log -r 75 
------------------------------------------------------------------------ 
r75 | zachary.murray | 2013-10-11 15:05:05 -0700 (Fri, 11 Oct 2013) | 2 lines 

Blah blah blah, I'm a dumb stupid SVN commit message I can't seem to kill. 

------------------------------------------------------------------------

이 바보 같은 메시지를 한 번에 모두 삭제하려고합니다. r75를 지나서 다른 커밋이 없으며, 나는 정말로 r74를 다시 HEAD로 만들고 싶습니다. 희망이 없습니까? 도움!

+0

이상합니다. Github repo의 SVN "view"는 단순히 Git (재설정/rebase 등)을 통해 수행 된 모든 기록 수정을 무시합니다. 아마도 Github 직원 만이 이유를 대답 할 수 있습니다. – sleske

+0

Github 지원팀에 연락했습니다. 답변을 답글로 보내 드리겠습니다. – sleske

답변

1

이것은 GitHub의 Subversion 하위 시스템과 관련된 일반적인 문제인 것으로 보입니다.

일부 테스트에 따르면 git (재설정/리베이스 등 + git push -f)를 사용하여 변경 한 기록이있는 저장소에는 잘 대처할 수 없습니다. 후속 svn checkout + svn 로그는 단지 저장소의 오래된 히스토리를 보여 주거나, 최종 커밋에서 적어도 동일한 파일 시스템 상태에 도달하도록 다른 중간 커밋을 표시합니다.

GitHub에 연락하여 확인했습니다. 분명히 Subversion은 역사가 변하지 않는다고 가정하기 때문에 주로 Subversion 클라이언트에 대한 새로운/변경된 커밋이 모든 Subversion 작업 복사본을 무효화한다는 것을 보여주기 때문에 주로 이렇게 처리됩니다.

변경 될 수는 있지만 어디에도 문서화되지 않은 것 같습니다.

관련 문제