没有远程压缩对象的git pull

时间:2011-08-18 03:30:06

标签: git

我有一个充满zip文件的存储库,重新压缩这些文件将是浪费时间。

我试图在远程和本地副本上设置 core.compression = 0 但没有成功

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

git pull 仍然

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

2 个答案:

答案 0 :(得分:48)

我遇到的时间问题是由delta压缩造成的。

我的解决方案是

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

我会引用这个出色的回应 来自http://lists-archives.com/git/719515-serious-performance-issues-with-images-audio-files-and-other-non-code-data.html

  

Git确实在zlib中花费了相当多的时间来处理某些工作负载,但它确实如此   不应该在几分钟的时间内产生问题。

     

对于推拉,你可能会看到delta压缩,   这对于大文件来说可能很慢

     
    

core.compression 0#似乎没有用。

  
     

这应该禁用松散对象和对象的zlib压缩   在packfiles中。它可以为没有的物体节省一点时间   压缩,但你将失去任何文本文件的大小优势。

     

但它不会关闭delta压缩,这就是   推拉过程中“压缩......”阶段正在进行中。哪个是   更可能是缓慢的原因。

     
    

pack.window 0

  
     

它设置git在执行delta时将考虑的其他对象的数量   压缩。将其设置为低可以改善推/拉时间。但   你将失去你的delta压缩的实质好处   非图像文件(和git的元对象)。所以上面的“-delta”选项   对于特定文件是一个更好的解决方案。

     
    

echo'* .jpg -delta'> .gitattributes

  
     

另外,请考虑重新打包您的存储库,这将生成一个   在推拉过程中将重复使用的packfile。

请注意,必须在您提取/拉出的仓库上进行设置,而不是您要提取/拉出的仓库。

答案 1 :(得分:8)

compressing object行表示它正在进行pack工作。这包括区分树木和东西。它不是core.compression意义上的“压缩”。