场景可以将zip文件作为目录和zip文件中的文件作为blob处理?
想象,我不得不与我的一些文件总是存储在内部.zip
文件的工作。 zip中的一些文件是小文本文件,并且经常更改,而其他文件较大,但幸运的是相当静态(例如图像)。
如果我想将这些压缩文件放入git
存储库中,则每个压缩文件都被视为blob,因此每当我提交压缩文件时,存储库都会增大...即使只有一个小文本文件变了!
为什么这是现实
的MS Word 2007/2010 .docx
和Excel .xlsx
文件是ZIP文件...
我想要什么
是存在的,以任何机会,一种告诉git
不要将zip文件视为文件的方式,而是将其视为目录并将其内容视为文件?
优势
- 小得多回购规模,即更快的传输/备份
- Display changes with Git to zip's将自动将工作
但它不能正常工作,你说呢?
我意识到,如果没有额外的元数据,这将引起歧义的一些量:在git checkout
混帐必须决定是否要创建foo.zip/bar.txt
作为普通目录中的文件或zip文件。然而,这可以通过配置选项来解决,我想。
两个想法如何可以做到(如果不存在的话)
- 使用图书馆内的git如
minizip
或IO::Compress::Zip
- 莫名其妙地增加了文件系统层,使得实际的git看到zip文件作为目录开始
用'.DOCX场景'文件是有道理的,但在其他许多情况下,您可能需要考虑使用git来正常跟踪各个文件,并且只使用'make'等相应的构建工具*构建* .zip。 – pixelistik
考虑到两个看起来不同的zip文件可以保存完全相同的数据(例如,使用两个不同的压缩级别压缩两次的文本文件),这变得更加棘手。虽然很容易在两个版本的解压缩文件之间用很少的信息来表示差异,但我猜想代表两个版本的压缩文件(这实际上是git必须做的)之间的区别,尽可能少的信息是非-不重要的。 – HelloGoodbye
你有没有结束[Jeff's answer](https://stackoverflow.com/a/8001900/321973)或其他任何东西的实施解决方案?我想知道除了[对于tar档案](https://stackoverflow.com/q/37000849/321973)基本相同,这应该产生兼容的答案... –