2011-10-11 2 views
8

우리는 현재 Subversion을 소스 코드 저장소로 사용하고 있습니다. 우리는 힘내로 전환하는 계획 단계에있다. Subversion 저장소는 현재 19Gb입니다. Git 저장소는 디스크 공간 요구 사항에서 Subversion과 어떻게 비교됩니까? 내 19Gb svn 저장소가 Git 저장소에서 번역 할 대상은 무엇입니까?Git과 SVN에 필요한 공간은 어느 정도입니까?

+2

확실한 방법은 전환을 수행하고 직접 확인하는 것입니다. –

+0

또 다른 것은 고려해야 할 각 힘내 클라이언트는 또한 전체 repo를 저장하지만, SVN 그러나 각 클라이언트는 최신 개정판 만 저장합니다. 따라서 전체 Git 공간 요구 사항은 전체 repo 크기 x 클라이언트 수 + 1 (서버)입니다. – malhal

답변

16

이 저장된 개체의 예를 들어, 지점의

  • 번호, 태그 유사의
  • 수를

    • 유형은 여러 가지 요인에 따라 달라집니다 때문에 Git 저장소에 소요되는 정확한 크기를 추측하기 어렵다/duplicate objects

    힘내는 좋은 압축 알고리즘을 가지고 있으며 이전 경험으로는 SVN 저장소의 크기를 최대 10 배까지 줄일 수있었습니다. Here's some examples.

    그러나 가장 좋은 방법은 직접 시도하는 것입니다. 로컬 컴퓨터에서 당신은 다음 git gc를 실행하고 시작하는 데 필요한 공간이 얼마나보고 힘내

    $ git-svn clone -s http://path/to/subversion reponame 
    

    에 SVN 저장소를 변환 할 수 있습니다.

  • 0

    git은 각 시스템에 전체 repo를 저장하므로 전체 기록도 저장되므로 큰 파일을 추가하고 삭제 한 후에 실제로 디스크 공간이 줄어들지 않았 음을 알 수 있습니다. 파일을 완전히 지우고 싶다면 git에서 특수 명령을 실행해야합니다.

    git filter-branch -f --index-filter 'git rm -r --cached --ignore-unmatch "filename"' --prune-empty HEAD 
    rm -rf .git/refs/original/ && git reflog expire --expire=now --all && git gc --aggressive --prune=now 
    

    오늘은 당신이뿐만 아니라 현재의 데이터뿐만 아니라 역사 이동할 수있는 자식 svn의 명령을 사용하여 이눔 아 내 svn의 REPOS 중 하나를 옮겼습니다. 그리고 여기에 내가 가진 것이 있습니다.

    내 PC의 현재 svn repo 크기는 1.27GB이고, 새로 만든 git repo는 3.24GB입니다. git repo에는 전체 히스토리가 포함되어 있기 때문에 삭제 된 파일은 실제로 위에서 언급 한 것처럼 명시 적으로 수행 할 때까지 실제로 git에서 삭제되지 않습니다. git으로 이동하는 동안 문제가 발생하면 답변을 찾을 수 있습니다. here

    관련 문제