2011-08-18 4 views
30

저장소가 zip 파일로 가득 차 있기 때문에이 파일을 다시 압축하면 시간이 낭비됩니다.원격으로 개체를 압축하지 않고 git 풀다.

나는 원격 및

git config core.compression 0 
git config core.loosecompression 0 

이 자식을 끌어 성공하지 로컬 복사본에 core.compression = 0을 설정하려고했습니다 여전히

remote: Counting objects: 23, done. 
remote: Compressing objects: ... 
+1

성능 차이를 측정 해 보셨습니까? 이미 압축 된 데이터를 압축하는 데 시간을 낭비하지 않아도됩니다. 네트워크는 CPU보다 훨씬 느릴 수 있습니다. –

답변

43

내가 가진 시간 문제는 델타 압축 때문에 발생했습니다.

나를 위해이 솔루션은

echo '*.zip -delta' > .gitattributes 
git gc 

내가로부터이 우수한 응답 을 인용합니다

했다 http://lists-archives.org/git/719515-serious-performance-issues-with-images-audio-files-and-other-non-code-data.html

망할 놈의 일부 워크로드 ZLIB 시간의 공정한 조금을 보내고 않지만, 은 안 분 단위로 문제를 만듭니다.

는 밀고 당기는를 들어, 당신은 아마 0 #이 작동하지 않았다 큰 파일

core.compression에 대한 속도가 느려질 수 있습니다 델타 압축, 을보고있다.

이렇게하면 묶음 파일 내의 느슨한 객체와 객체 의 zlib 압축이 비활성화되어야합니다. 압축하지 않는 개체에 대해서는 약간의 시간을 절약 할 수 있지만 모든 텍스트 파일의 크기 이점을 잃게됩니다.

그러나 델타 압축을 끄지는 않습니다. 이는 밀어 넣기 및 당기기 중에 "압축 중 ..."단계가 수행하는 것입니다. 그리고 느림의 원인 인 일 가능성이 훨씬 큽니다.

pack.window 0

그것은 델타 를 압축 할 때 자식 고려해야 할 다른 개체의 수를 설정한다. 이 값을 낮게 설정하면 밀기/당기기 시간이 향상됩니다. 그러나 비 - 이미지 파일 (및 자식의 메타 개체) 델타 압축의 실질적인 혜택을 잃게됩니다. 따라서 특정 파일의 경우 "-delta"옵션이 보다 훨씬 더 좋습니다.

에코 '* .JPG - 델타'> .gitattributes

또한, 푸시 동안 재사용 및 당겨 될 packfile를 생성합니다 저장소를 재 포장 고려한다.

설정은 가져 오거나 가져 오는 저장소가 아니라 가져 오는/가져 오는 저장소에서 수행해야합니다.

+7

을 제안하면 아무런 문제가 없습니다 :'echo '* .zip -delta'>> .gitattributes' – scottgwald

7

compressing object 라인 수단을 그것은 pack 작업을 수행합니다. 그것은 나무와 물건을 diffing 포함됩니다. core.compression의 의미에서 "압축"하지 않습니다.

+1

괜찮 았어. 그래서 어떻게하면 git pull이 포장 작업을하지 못하게 할 수 있을까? – hdorio

+4

@Doud 당신은 그렇지 않습니다. 힘내는 물건을 포장한다. 이것은 선하고 바람직한 행동입니다. – meagar

+0

@Doud 패킹없이 집을 어떻게 움직일 수 있습니까? –

관련 문제