相关疑难解决方法(0)

为什么对Apache提供的文本文件使用deflate而不是gzip?

这两种方法为LAMP服务器提供的html,css和javascript文件提供了哪些优势.还有更好的选择吗?

服务器使用Json向地图应用程序提供信息,因此大量的小文件.

另请参阅为压缩选择gzip over deflate是否有任何性能损失?

compression apache lamp gzip deflate

208
推荐指数
3
解决办法
13万
查看次数

Git的包文件是否是快照而不是快照?

Git与大多数其他版本控制系统之间的主要区别之一是,其他人倾向于将提交存储为一系列增量 - 一次提交与下一次提交之间的更改集.这似乎是合乎逻辑的,因为它是存储提交的最小可能信息量.但是,提交历史记录越长,比较修订范围所需的计算就越多.

相比之下,Git 在每个版本中存储了整个项目完整快照.这并没有使回购规模显着每个提交成长的原因是项目中的每个文件存储在Git的子目录中的文件,名为对其内容的哈希值.因此,如果内容未更改,则散列未更改,并且提交仅指向同一文件.还有其他优化.

所有这些对我来说都是有意义的,直到我偶然发现有关包文件的信息,Git定期将数据放入其中以节省空间:

为了节省空间,Git使用了packfile.这是一种格式,其中的Git只会保存在第二个文件已经改变,它的指针是类似文件的一部分.

这基本上不会回到存储增量吗?如果没有,它有什么不同?这如何避免Git遇到其他版本控制系统遇到的相同问题?

例如,Subversion使用增量,回滚50个版本意味着撤消50个差异,而使用Git,您可以获取适当的快照.除非git还在packfiles中存储50个差异...是否有一些机制说"在经过一些少量的增量后,我们将存储一个全新的快照",这样我们就不会堆积太大的变更集?Git还有什么可以避免增量的缺点?

git version-control internals

65
推荐指数
2
解决办法
1万
查看次数

当我们这样做时git会做什么:git gc - git prune

启动后在后台发生了什么,

  • git gc
  • git prune

输出git gc:

Counting objects: 945490, done. 
Delta compression using up to 4 threads.   
Compressing objects: 100% (334718/334718), done. 
Writing objects: 100%   (945490/945490), done. 
Total 945490 (delta 483105), reused 944529 (delta 482309) 
Checking connectivity: 948048, done.
Run Code Online (Sandbox Code Playgroud)

git prune的输出:

Checking connectivity: 945490, done.
Run Code Online (Sandbox Code Playgroud)

这两个选项有什么区别?

谢谢

git garbage-collection git-gc

6
推荐指数
1
解决办法
1986
查看次数