解压缩OpenOffice文件,以便在版本控制中获得更好的存储空间

Cra*_*een 16 version-control openoffice.org

我听说过关于OpenOffice(ODF)文件是如何压缩XML和其他数据的zip文件的讨论.因此,对文件进行微小更改可能会完全改变数据,因此增量压缩在版本控制系统中不能很好地工作.

我已经对OpenOffice文件进行了基本测试,解压缩然后以零压缩方式重新压缩它.我使用Linux zip实用程序进行测试.OpenOffice仍然乐意打开它.

所以我想知道在每次提交版本控制之前是否值得开发一个小实用程序来运行ODF文件.对这个想法的任何想法?可能更好的选择?

其次,实现这个小实用程序的好方法是什么?调用zip的Bash shell(可能只是Linux)?蟒蛇?你能想到的任何陷阱?显然,我不想意外地破坏文件,并且有几种方法可能发生.

我能想到的可能的陷阱:

  • 磁盘空间不足
  • 一些其他权限问题会阻止写入文件或临时文件
  • ODF文档是加密的(可能应该只留下这些;加密可能还会导致大文件更改,从而阻止有效的delta压缩)

Jak*_*ski 14

首先,您要使用的版本控制系统应该支持挂钩,这些挂钩被调用以将文件从存储库中的版本转换为工作区域中的版本,例如Gitattributes中Git中的clean/smudge过滤器.

其次,您可以找到这样的过滤器,而不是自己编写一个过滤器,例如从git邮件列表中的" git " 文件中的 " opendocument(openoffice.org)文件管理 "中重新压缩(但请参阅" 后续操作:OO文件管理 - 警告"中的警告关于"rezip"方法 "),

您还可以在" 使用Git跟踪OpenOffice文件/其他压缩文件 "主题中浏览答案,或者尝试在" [PATCH 2/2]添加关键字展开支持到convert.c "主题中找到答案.

希望有所帮助


ser*_*gtk 6

您可以考虑以FODT格式存储文档 - 平面XML格式.
这是一种相对较新的替代解决方案.

文档只是解压缩存储.

有关详细信息,请访问https://wiki.documentfoundation.org/Libreoffice_and_subversion.