一个政府机构发布了一个文本文件,里面有成千上万的记录。整个文件大约是60 is。每天,该文件大约有60个新的或更改的记录。
我们需要根据该文件验证一些信息,并且为了审核的目的,我们可能需要恢复该文件,因为它是在特定的日期。
我想我可以使用VCS来使用git来存储文件,但是我知道git存储了整个压缩的文本文件,所以60BM文件仍然需要大约30 to来存储日常版本。
我想知道其中一个免费的VCS是否只存储diff/补丁文件。
发布于 2012-09-19 23:58:01
确实,Git只存储整个文件的全部修订版。但是,它并不是简单地将它们作为单独的文件存储在文件系统中。相反,它将它们存储在一个包文件中。
从广义上说,包文件是指整个存储库的整个历史记录中的每个文件的每个修订版都连接到一个文件中,然后进行压缩。由于大量的冗余,这压缩难以置信的好,因为压缩机喜欢冗余。
这不仅将压缩单个文件的不同版本(因为修订n和n+1通常都是相同的),甚至将相同的内容块压缩到不相关的文件中,比如GPL许可证头(这是基于补丁的存储格式所不能做到的)。
通常,Git存储库最终会比Subversion存储库小,尽管后者只存储补丁。
发布于 2012-09-19 22:28:40
我知道git存储了整个文本文件,
这就是立即发生的事。但是它经常将其重组成一组被压缩的更改。
我想知道其中一个免费的VCS是否只存储diff/补丁文件。
所有的人都有。每一个人。就连1972年的SCCS也这么做了,很可能在此之前也是如此。
https://softwareengineering.stackexchange.com/questions/165449
复制相似问题