2013-04-09 1 views
4

큰 svn 저장소 (30,000 개 이상 버전)에서 작업하고 있습니다. git-svn을 제한적으로 사용하고 있습니다.git-svn 큰 바이너리 파일을 무시합니다.

내 큰 문제는 svn 저장소에 큰 바이너리 파일 (~ 30MB)이 자주 업데이트된다는 것입니다. 나는이 파일의 역사에 관심이 없지만이 파일의 최신 버전에 관심이있다.

git svn rebase는 내 마지막 svn rebase 이후에 큰 바이너리 파일을 여러 번 업데이트하면 매우 느리게 실행됩니다. 내 자식 데이터베이스도 매우 빠르게 커집니다. 이 두 가지 주요 문제를 해결하기 위해 노력하고 있습니다.

이상적으로, 내가하고 싶은 것은 svn에서 이러한 큰 파일을 완전히 무시한 다음 내 .gitignore로 막을 최신 버전 만 가져 오는 스크립트를 실행하는 것입니다. 나는 다른 옵션을 매우 열었습니다.

+0

힘내는 이진 파일의 버전 관리에 스마트 알고리즘을 사용하지 않으며 저장소의 각 버전을 저장하므로 저장소가 커집니다. 유닉스 플랫폼에서 git-svn을 사용하고 있는지 확인하십시오. Windows에서 매우 느린 것으로 알려져 있습니다. 그 파일에 대한 경로를 무시하고 마지막 커밋을 수정하여 추가하는 것이 좋습니다. – rcomblen

+0

당신은 내가 그 파일들에 대한 경로를 무시할 것을 제안한다고 말합니다. 나는 그것을 어떻게 할 수 있니? – ajb

+0

내 대답보기 ... – rcomblen

답변

8

당신이 git svn--ignore-paths 옵션을 사용하여 일부 파일을 무시 할 수 --ignore-경로

--ignore-paths=<regex> 
       This allows one to specify a Perl regular expression that will 
       cause skipping of all matching paths from checkout from SVN. 
       The --ignore-paths option should match for every fetch 
       (including automatic fetches due to clone, dcommit, rebase, 
       etc) on a given repository. 

        config key: svn-remote.<name>.ignore-paths 

       If the ignore-paths config key is set and the command line 
       option is also given, both regular expressions will be used. 

       Examples: 

       Skip "doc*" directory for every fetch 

         --ignore-paths="^doc" 

       Skip "branches" and "tags" of first level directories 

         --ignore-paths="^[^/]+/(?:branches|tags)" 
+0

완벽하게 작동합니다. 나를 올바른 방향으로 가리켜 주셔서 감사합니다. – ajb

0

내게 그 자식의 svn이 svn 정보를 가져 와서 git로 변환 한 이후로 git-svn을 사용하는 것이 가능하지 않다고 생각합니다. 팩 파일을 확인하면 거대한 파일임을 알 수 있습니다.

거대한 파일/폴더를 .gitignore에 추가하면 파일이 처리되지 않습니다.

좋은 해결책은 여기에 게시 : 이 http://alblue.bandlem.com/2011/11/git-tip-of-week-git-bigjobbies.html

+1

.gitignore에 파일/폴더를 추가해도 'git svn rebase'가 파일을 가져 오지 못합니다. – ajb

0

자식 svn의 옵션을 =

은 svn 저장소를 git로 변환 할 때 원치 않는 바이너리 파일을 제외시키는 데 유용합니다. 당신이 바이너리 파일의 파일 이름 확장자를 알고있는 경우

다음, 예를 들어,

.jar 파일을 제외하는 정규식 표현을 쓸 수 있습니다 : -.. 무시 - 경로 = "* 항아리 $ "

+0

편집 해 주셔서 감사합니다. @Harshit Agrawal – JBTPublic