표준 git svn clone
이상을 허용하는 범용 svn ->
git 마이그레이션 스크립트를 작성하는 중입니다. 스크립트의 한 단계에서 git svn show-externals
및 git svn show-ignore
의 출력을 매번 확인하고 있습니다. 이주 저장소의 분기 및 해당 명령의 출력에 따라 다양한 단계를 수행하십시오.git svn show-ignore/show-externals가 왜 그렇게 느린가요?
내 문제는 이제 내 스크립트의 나머지 부분은 꽤 빠르지 만 특히이 두 명령은 내 실행 시간의 대부분을 차지하는 것처럼 보입니다. 경우에 따라 git svn show-externals
이 (약 5000 개의 파일이 포함 된 레포에서) 실행하려면 10 분 이상 소요됩니다. 10 개 이상의 브랜치가있는이 크기의 저장소에서 실행하면 상당히 합산된다고 상상할 수 있습니다.
이 작업을 실행하는 데 시간이 오래 걸리는 이유는 무엇입니까? 실행 속도를 높이기 위해 할 수있는 일이 있습니까?
"디렉토리 당 추가 SVN 요청을 수행합니다." - 정말로 디렉토리마다? 왜 전체 트리에 대해 하나의 재귀 적'svn propget -R svn : ignore'를 수행하지 않는가? – Rup
유용 할 수 있습니다. 나는 외관을 서브 모듈로 변환하는 것을 지원하지 않는다는 것을 알아 차렸다. 그것에 관한 어떤 제안? – majackson
Rup : git-svn 스크립트의 "cmd_show_ignore"기능을 살펴보십시오. 그것은 "prop_walk"를 호출합니다. 그런 다음 "prop_walk"정의를 살펴보십시오. $ self-> ra-> get_dir ($ path, $ rev)를 호출합니다. - 디렉토리에 대한 속성 및 하위 항목을 가져 오는 메소드입니다. 그런 다음 "prop_walk"는 디렉토리 인 모든 자식에 대해 자체를 호출합니다. 매우 이상하지만 사실입니다. –