git – 如何将未压缩的文件夹视为压缩文件?

我们都知道有关第三方或内置于操作系统的工具,用于将压缩文件视为文件夹.但有没有人知道如何反过来:欺骗操作系统认为包含一些文件的标准文件夹实际上是一个压缩文件?寻求
Windows,
Linux和Mac的解决方案(尽管我意识到没有一种解决方案可以在所有这些平台上运行).

问题的上下文是让源代码版本控制系统如SVN,Git或Mercurial更有效地在实际压缩文件夹的文档版本之间存储差异(保存各种XML文件,一些元数据和一两个缩略图) ),例如ODT和DOCX.

我已经了解Zipdoc和类似的utils,它们使用Git和Mercurial编码/解码钩子将数据转换成存储库.这是解决问题的一个很好的解决方案,但我发现自己想要浏览包含文档的未压缩文件夹内容的存储库,并单独区分其中的文件.

这意味着必须将未压缩的内容添加到存储库,而不是文档的tar’d或zipped-without-compression版本.这反过来意味着从存储库中结账会生成一个未压缩的文件夹,其中包含代表文档的文件.因此,我原来的问题.

我设想的神话产品会检测一个名称中包含“已注册”扩展名的文件夹(例如“docx”),然后将其“重新安装”为同名的压缩文件.

或者,有没有人知道如何利用Git / Mercurial编码/解码钩子来实现这个梦想?

最佳答案 要以一种很好的方式解决这个问题,你可以使用带有nsmux的Hurd转换器 – 尽管改变你的内核可能是一大步:)

http://www.gnu.org/software/hurd/hurd/translator/nsmux.html

您可能能够调整tarfs转换器.这将允许您通过文件夹,zip打开文件夹.

但这需要相当多的工作.

(这是一个非常简单的用例指向一个相当复杂的问题的一个很好的例子)

点赞