LibreOffice 会将文件保存为 zip 文件。Zip 文件通常不适合与 Git 一起使用:文档中的一小处更改就可能改变 zip 文件的大部分内容,因此 Git 无法重用部分内容,这会导致 Git 存储库随着 zip 文件的全部大小而增长,而不仅仅是少数更改。
有没有什么方法可以让我告诉 LibreOffice 以 Git 友好的格式保存?
例如,将其保存为未压缩的 zip 文件(ala .tar)或只是将文档保存为包含与解压后的 zip 文件相同的文件的目录。
答案1
有没有什么方法可以让我告诉 LibreOffice 以 Git 友好的格式保存?
您可以将文件保存为平面 XML ( fodt
),而不是odt
:
如果将文档保存为
.fodt
文件,它将保留文件所包含的相同数据.odt
。只是这一次数据以人类可读的文本形式表示(这让版本控制系统的工作变得容易得多),并且没有经过压缩。因此,将文档保存为平面 XML 可以以相对较低的成本(在本地硬盘上浪费几千字节)保持较低的服务器空间要求和网络负载。
进一步阅读
答案2
压缩文档是一个使用 git clean(和可选的 smudge)过滤器对存储在 git 中的基于 ZIP 的文件进行清理的工具(ODT 基本上是一个 ZIP 文件)。
IT 只需重新压缩 ODT 而不进行压缩,并告诉 git 将 ODT 视为文本文件。除了包含的图像外,ODT 中的数据以及 ODT ZIP 中的文件大多基于文本。因此,这种方法与 git 增量压缩配合得很好。LibreOffice 本身可以毫无问题地读取未压缩的 ODT 文件,因此这种方法没有任何缺点,除了必须在所有协作者的本地存储库中设置 ReZipDoc。
理论上,git repo 的最终大小应该与使用 FODT 大致相同,只要 LibreOffices 在两种情况下对文本部分进行一致格式化。
答案3
我编写了一个 bash 脚本,将 Libreoffice 文档增强为 git 友好格式 - 请参阅https://github.com/timwiel/libreoffice2git