2012-12-24 6 views
8

reposurgeon을 사용하여 svn repo를 git으로 변환하려고합니다. 이 12 기가 바이트 덤프 그대로reposurgeon을 사용하여 svn repo를 git로 변환

svnadmin dump /home/subversion > repo.svn 
reposurgeon "verbose 1" "repo.svn" "authors read" "write repo.fi" 

reposurgeon는 (많은 시간 동안 교환을 많이 실행 - 여기

내가 (> 자식 이름 매핑을 svn의 이름을 가진 repo.map 파일이) 한 일이다 파일), 모든 것이 잘 보입니다. 다음은 내가 얻은 결과입니다.

reposurgeon: verbose 1 
    reposurgeon: from repo.svn...copynodes+filemaps+copysets+commits+branches+parents+root+branchlinks+svn-mergeinfo+tagifying+tagify-empty+polishing+canonicalizing+resets+debubbling+renumbering+14163 revisions (1/s)...(9810.18 sec) done. 
reposurgeon: r13: deleting parentless zero-op commit. 
. 
. 
. 
reposurgeon: r13726: deleting parentless zero-op commit. 
    2012-12-24T01:16:23Z * repo.svn 

이 시점에서 reposurgeon이 앉아 있습니다. 나는 실제로 나에게 오류 메시지를주지 않으므로이 시점에서 해결책을 어디에서 찾을 지 확신하지 못한다. 모든 제안을 환영합니다.

+0

IRC와 같이 ESR이 중단되는 곳을 물어보십시오. 이것은 많은 커밋처럼 보였습니다. 그는 최근에 관심을 가질만한 성능 최적화를 도입했습니다. – mikewaters

+0

@DanielJacobs : 대화식으로 작업을 실행 해 보았습니까? 나는 커맨드 라인과 스크립트에서 물건을 실행하는 사이에 미묘한 불일치를 발견했다. 또한 대화 형 프롬프트를 사용하여 리프트 스크립트를 개발합니다. – 0xC0000022L

답변

-1

reposurgeon의 대안을 고려한다면 git-svn을 대신 사용하기로했습니다.

3

reposurgeon과 git-svn의 대안을 고려하려면 SubGit을보십시오.

$ subgit configure /home/subversion 
#edit /home/subversion/conf/subgit.conf to set 'core.authorsFile' option to path to "repo.map" file 
$ subgit install /home/subversion 
$ subgit uninstall --purge /home/subversion 

변환 된 저장소는 /home/subversion/.git 디렉토리에 있습니다. 보너스로 모든 svn : ignore 및 svn : eol-style 속성이 Git 아날로그로 변환됩니다.

보통 SVN 저장소는 해당 덤프 파일보다 4 배 정도 작기 때문에 원래 저장소의 변환은 덤프 기반 변환보다 빠릅니다.

6

저장소를 성공적으로 가져 왔지만 authors read 명령을 처리하지만 파일을 지정하지 않았습니다. 이 시점에서 그것은 실제로 파일이 stdin에 나타날 때까지 기다리고 있습니다. authors read <author-map을 사용하십시오. 여기서 author-map은 맵을 포함하는 파일의 이름입니다.

이와 비슷한 이유로 쓰기 명령을 write >repo.fi으로 변경하려고합니다.

+0

어떻게 작성자지도를 얻을 수 있습니까? – rubo77

+0

author-map은 "ferd = Ferd J. Foonly <[email protected]> -0500"과 같은 줄이 포함 된 텍스트 파일입니다. – db48x