2010-06-07 5 views
12

svn2git을 사용하여 Subversion에서 Git으로 마이그레이션 (내부적으로 git-svn 사용) 특정 개정판 커밋을 찾는 방법을 알고 싶습니다.Subversion에서 Git으로 마이그레이션하기 개정 번호가 주어진 커밋을 어떻게 찾을 수 있습니까?

트래커에 다음과 같은 코멘트가있는 것이 일반적입니다. "Fixed in r12345".

이 점을 감안할 때, 예를 들어, r12345에 해당하는 diff를 추출 할 수 있기를 바랍니다.

미리 감사드립니다. 힘내와

감사

답변

19

git svn find-rev r1938 

나는 커밋 또는 아무것도 얻을 수있는 "원샷"방법이 있다면 '는 t 알아요,하지만 당신이 뭔가 같은

git log -p `git svn find-rev r1938` 

업데이트를 쓸 수 있습니다 : 당신은 또한

와 커밋 메시지를 잡을 수 있습니다
git svn log -r 1938 

업데이트 다시 :

git svn find-rev c7443021942 
,369 : find-rev 또한 역으로 작동합니다

은 SVN 커밋 번호를 반환합니다.

+0

이주에 사용 된 저장소에서 작업 중입니다. 이 저장소가 원격 저장소가되면 더 이상 사용할 수 없지만'git log --grep = '@ 12345'를 사용하여 저장소를 가져올 수 있습니다. 이것으로 당신의 답을 업데이트 할 수 있습니까? –

+0

당신의 의견이 충분하다고 생각합니다.':)'나는 "원격으로가는 것"이 ​​무엇을 의미하는지 확신 할 수 없으므로 나는 더 이상 미안할 수 없습니다. –

+0

즉, 로컬 저장소를 원격 저장소로 푸시하는 경우입니다. 그런 다음'git log' 메소드 만 작동합니다. –

-2

를이 유사 :

Fixed in d8602bb9729ddb2f28e61028cc5981cb310231a2. 

가 함께 DIFF를 가져옵니다 : 개정 번호, 당신이 망할 놈의 SHA를 찾을 수 있습니다 감안할 때

git show d8602bb9729ddb2f28e61028cc5981cb310231a2 
+1

일반적으로 해시의 처음 5 자 정도 만 필요합니다. –

+0

svn 커밋 12345가 커밋 ID로 매핑되었음을 알 수있는 방법을 전혀 알려주지 않습니다. 마이그레이션 후 d8602bb9729ddb2f28e61028cc5981cb310231a2! 기본적으로 다음과 같은 것이 필요합니다 : git show -r12345 –

+0

'git log -1'을 사용하여 최신 커밋의 커밋 ID를 표시 할 수 있습니다. ID를'git show'에게 보냅니다. 저장소에서 특정 svn 개정판을 찾으려면'git log --grep = '@ 12345'-p'를 시도하십시오. – Bombe

관련 문제